GetSupportFragmentManager () undefined in fragment
I am getting an error in getSupportFragmentManager () that "this method is not defined in Fragment" while creating a slider menu with sliding tab i, prepared by the code below.
public class HomeFragment extends Fragment {
Toolbar toolbar;
ViewPager viewpager;
ViewPagerAdapter adapter;
SlidingTabLayout tabs;
CharSequence Titles1[] = { "Home", "Help", "Contect" };
// int Titles[] = { R.drawable.ic_content_copy_black_24dp,
// R.drawable.ic_refresh_black_24dp, R.drawable.ic_share_black_24dp };
int NumOfTabs = 3;
public HomeFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_home, container,
false);
return rootView;
adapter = new ViewPagerAdapter(getSupportFragmentManager(), Titles1,
NumOfTabs);
viewpager = (ViewPager) rootView.findViewById(R.id.pager);
viewpager.setAdapter(adapter);
tabs = (SlidingTabLayout) rootView.findViewById(R.id.tabs);
tabs.setDistributeEvenly(true);
}
and my adapter class for ViewPager is below:
public class ViewPagerAdapter extends FragmentStatePagerAdapter{
CharSequence Titles1[];
int Titles[];
int NumbOfTabs;
public ViewPagerAdapter(FragmentManager fm, CharSequence mTitles[], int mNumbOfTabs) {
super(fm);
this.Titles1 = mTitles;
this.NumbOfTabs = mNumbOfTabs;
}
@Override
public Fragment getItem(int arg0) {
if(arg0 == 0){
Tab1 tab1 = new Tab1();
return tab1;
}else if(arg0 == 1){
Tab2 tab2 = new Tab2();
return tab2;
}else{
Tab3 tab3 = new Tab3();
return tab3;
}
}
@Override
public CharSequence getPageTitle(int position) {
return Titles1[position];
}
@Override
public int getCount() {
return NumbOfTabs;
}
source to share
Just replace:
getSupportFragmentManager()
from:
getFragmentManager()
If you use android.support.v4.app.Fragment
it will return android.support.v4.app.FragmentManager
(SupportFragmentManager)
If you use android.app.Fragment
it will returnandroid.app.FragmentManager
Keep in mind that it is handled differently that in actions. As in android.support.v4.app.FragmentActivity
. There you have getSupportFragmentManager()
andgetFragmentManager()
source to share
getSupportFragmentManager()
used when your activity
expands FragmentActivity
or AppCompatActivity
. If you are expanding activity
, you need to use getFragmentManager()
.
If you are expanding FragmentActivity
, make sure you import android.support.v4.app.FragmentActivity
.
Also note that getSupportFragmentManager()
is available for android.support.v4.app.Fragment
not android.app.Fragment
.
Also you need to return rootView
at the end onCreateView()
.
source to share