Note
: I've looked at questions similar to this. Most of them said to interchange between import android.app.ListFragment and import android.support.v4.app.ListFragment; However this didn't solve my problem.
I've made a Fragment called fragmentOne. I've tried to implement a list in fragmentOne using ListFragment. When a particular button is clicked, FragmentOne should appear on screen. The method to be called when the button for fragmentOne is pressed, is FragmentOneClick(View v). It is in MainActivity.java. However, in this method, in the line:
Fragment myFragment=new fragmentTwo();
I'm getting an error saying:
incompatible types. Required : android.app.ListFragment found: com.example.projectName.fragmentOne
How can I resolve this error?
fragmentOne.java:
import android.app.ListFragment;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
//import android.support.v4.app.Fragment;
import android.app.Fragment;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
public class fragmentOne extends android.support.v4.app.ListFragment
{
String dates[]={"1","2","3","4","5","6","7","8","9"};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View rootView;
rootView=inflater.inflate(R.layout.fragment_fragment_one, container, false);
return rootView;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,dates);
setListAdapter(adapter);
}
}
FragmentOne.xml:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.nirvan.fragment_example.fragmentOne">
<!-- TODO: Update blank fragment layout -->
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/list"
android:layout_gravity="left|top" />
</FrameLayout>
MainActivity.java:
import android.support.v4.app.Fragment;
import android.app.ListFragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
public class MainActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void FragmentOneClick(View v)
{
ListFragment myFragment=new fragmentOne();
FragmentManager fm= getFragmentManager();
FragmentTransaction ft=fm.beginTransaction();
ft.replace(R.id.fragment_switch, (android.app.Fragment) myFragment );
ft.commit();
}
public void FragmentTwoClick(View v)
{
Fragment myFragment=new fragmentTwo();
FragmentManager fm= getFragmentManager();
FragmentTransaction ft=fm.beginTransaction();
ft.replace(R.id.fragment_switch, myFragment);
ft.commit();
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.nirvan.fragment_example.MainActivity">
<Button
android:onClick="FragmentOneClick"
android:text="Fragment1"
android:id="@+id/button1"
android:layout_height="wrap_content"
android:layout_width="150dp"
android:layout_weight="2"
>
</Button>
<Button
android:text="Fragment2"
android:id="@+id/button2"
android:onClick="FragmentTwoClick"
android:layout_height="wrap_content"
android:layout_width="150dp"
android:layout_alignTop="@+id/button1"
android:layout_alignRight="@+id/fragment_switch"
android:layout_alignEnd="@+id/fragment_switch">
android:layout_weight="2"
</Button>
<fragment
android:id="@+id/fragment_switch"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="5dp"
android:layout_below="@+id/button1"
android:name="com.example.nirvan.fragment_example.fragmentOne"
tools:layout="@layout/fragment_fragment_one" />
</RelativeLayout>