Reputation: 5534
i'm getting error on getSupportFragmentManager() that "this method undefine in Fragment", while creating slider menu with sliding tab i prepared code as bellow..
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 as bellow
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;
}
Upvotes: 3
Views: 4240
Reputation: 6460
Just replace:
getSupportFragmentManager()
with:
getFragmentManager()
If you are using a android.support.v4.app.Fragment
it will return a android.support.v4.app.FragmentManager
(SupportFragmentManager)
If you are using a android.app.Fragment
it will return a android.app.FragmentManager
Keep in mind that it handled different that in Activities.Like in the android.support.v4.app.FragmentActivity
. There you have got getSupportFragmentManager()
and getFragmentManager()
Upvotes: 4
Reputation: 5591
getSupportFragmentManager()
is used when your activity
extends FragmentActivity
or AppCompatActivity
. If you are extending Activity
, you need to use getFragmentManager()
instead.
If you are extending FragmentActivity
, make sure you are importing 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 your rootView
at the end of onCreateView()
.
Upvotes: 1
Reputation: 2100
Are you sure you have the correct import? This one: import android.support.v4.app.Fragment; and not this: import android.app.Fragment;
Edit: Note that your code after "return rootView" on onCreateView will never be executed because you have a return before.
Upvotes: 0