Error incompatible types: android.app.FragmentManager cannot be converted to android.support.v4.app.FragmentManager
Change
import android.app.Fragment;
import android.app.FragmentManager;
to
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
in every class. you are facing problems because in your Fragment creation class you are using support v4 fragment and in your MainActivity class you are inflating as a simple fragment.
You also need to change getFragmentManager()
to getSupportFragmentManager()
, and make sure they're extending a FragmentActivity
class.
Hope it will help you.
Comments
-
Tony almost 2 years
Error
Error incompatible types: android.app.FragmentManager cannot be converted to android.support.v4.app.FragmentManager
is drving me nuts.In my app, I have 3 navigation drawer item,
timesheet
,claim
andview
, created in MainActivity. Now I wanted to add twotabs
withswipe view
inview
item.MainActivity // for navigation drawer
import android.app.Fragment; import android.app.FragmentManager; private void selectItem(int position) { Fragment fragment = null; switch (position) { case 0: fragment=new TimeSheet(); break; case 1: fragment=new Claims1(); break; case 2: fragment=new Viewview(); break; default: break; }
TabsFragmentPagerAdapter.java
import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; public class TabsFragmentPagerAdapter extends FragmentPagerAdapter { public TabsFragmentPagerAdapter(FragmentManager fm) { super(fm); // TODO Auto-generated constructor stub } @Override public Fragment getItem(int index) { // TODO Auto-generated method stub switch(index) { case 0: return new UpdatePage2(); case 1: return new Receipt(); } return null; } @Override public int getCount() { // TODO Auto-generated method stub return 2; } }
ViewView.java
import android.app.Fragment; import android.content.DialogInterface; import android.content.Intent; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.app.FragmentTransaction; import android.support.v4.view.ViewPager; import android.app.ActionBar; import android.support.v4.widget.SimpleCursorAdapter; import android.support.v7.app.AlertDialog; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ListView; import com.example.project.project.database.MyDatabaseHelper; public class ViewView extends Fragment implements ActionBar.TabListener { InfoAPI sqlcon; private SimpleCursorAdapter dataAdapter; private SQLiteDatabase database; private MyDatabaseHelper dbHelper; private ListView listView; private ViewPager viewPager; private TabsFragmentPagerAdapter mAdapter; private ActionBar actionBar; private String[] tabs = {"Information", "receipt"}; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreate(savedInstanceState); View View1 = inflater.inflate(R.layout.viewview1, container, false); listView = (ListView) View1.findViewById(R.id.listView1); dbHelper = new MyDatabaseHelper(getActivity()); sqlcon = new InfoAPI(getActivity()); viewPager = (ViewPager) View1.findViewById(R.id.pager); mAdapter = new TabsFragmentPagerAdapter(getActivity().getFragmentManager()); //here the error viewPager.setAdapter(mAdapter); actionBar = getActivity().getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); for (int i = 0; i < 2; i++) { actionBar.addTab(actionBar.newTab().setText(tabs[i]).setTabListener(this)); } viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageSelected(int arg) { // TODO Auto-generated method stub actionBar.setSelectedNavigationItem(arg); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub } @Override public void onPageScrollStateChanged(int arg0) { // TODO Auto-generated method stub } }); BuildList(); return View1; }
Problem :
Error:(49, 81) error: incompatible types: android.app.FragmentManager cannot be converted to android.support.v4.app.FragmentManager
If changed
import android.support.v4.app.FragmentManager;
inTabsFragmentPagerAdapter
toimport android.app.FragmentManager;
, the first issue solve but get thisError:(12, 15) error: incompatible types: android.app.FragmentManager cannot be converted to android.support.v4.app.FragmentManager
...I have no idea how to fix ..Edited
MainActivity
import android.app.Fragment; import android.support.v4.app.FragmentManager; case 2: fragment=new ViewView(); break; default: break; } if (fragment != null) { FragmentManager fragmentManager = getFragmentManager(); fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit(); mDrawerList.setItemChecked(position, true); mDrawerList.setSelection(position); setTitle(mNavigationDrawerItemTitles[position]); mDrawerLayout.closeDrawer(mDrawerList); } else { Log.e("MainActivity", "Error in creating fragment"); } }
Error
Error:(148, 30) error: incompatible types: ViewView cannot be converted to Fragment Error:(156, 69) error: incompatible types: android.app.FragmentManager cannot be converted to android.support.v4.app.FragmentManager Error:(157, 80) error: incompatible types: android.app.Fragment cannot be converted to android.support.v4.app.Fragment
-
Tony over 8 yearsAfter change, I get error on this line
mAdapter = new TabsFragmentPagerAdapter(getActivity().getFragmentManager());
ErrorError:(49, 81) error: incompatible types: android.app.FragmentManager cannot be converted to android.support.v4.app.FragmentManager
-
Mike M. over 8 yearsThey'll also need to change
getFragmentManager()
togetSupportFragmentManager()
, and make sure they're extending aFragmentActivity
class. -
Sanket Shah over 8 yearschange
android.app.FragmentManager
toandroid.support.v4.app.FragmentManager
in your MainActivity class -
Tony over 8 yearsIn mainActivity
public void onClick(View arg0) { FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); dialog.show(ft, "DatePicker"); }
-
Tony over 8 yearsError
Error:(84, 34) error: cannot find symbol method getSupportFragmentManager()
,Error:(85, 15) error: no suitable method found for show(android.support.v4.app.FragmentTransaction,String) method DialogFragment.show(FragmentManager,String) is not applicable (argument mismatch; android.support.v4.app.FragmentTransaction cannot be converted to FragmentManager) method DialogFragment.show(android.app.FragmentTransaction,String) is not applicable (argument mismatch; android.support.v4.app.FragmentTransaction cannot be converted to android.app.FragmentTransaction)
-
Sanket Shah over 8 yearsandroidhive.info/2015/09/… & androidbelieve.com/… please above link
-
swapnil saha about 8 yearsThe above mentioned changes have to be done in every fragments which you declare. This correction helped me
-
Mahdi about 7 years@Andrain Thank you.
-
Polycarp Kavoo over 5 years@Andrain Works like charm