问题
- I've the following class in my fragment activity now i want to get name of tabs from strings.xml but i can't able to use method
getString(int resId)
it gives a error message "Cannot make a static reference to the non-static method getString(int) from the type Context". - In method
public CharSequence getPageTitle(int position)
I need to get like thisname = getString(R.string.mystring)
any help is appreciated.
public static class AppSectionsPagerAdapter extends FragmentPagerAdapter { public AppSectionsPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int i) { switch (i) { case 0: Fragment fragment = new Activity1(); return fragment; case 1: Fragment fragment1 = new Activity2(); return fragment1; default: return new Activity2(); } } @Override public int getCount() { return 2; } public CharSequence getPageTitle(int position) { String name = null; if (position==0) { name = "Movie Details"; }else if (position==1) { name = "Movie Comments"; } return name; } }
回答1:
You need a Context
object to call getResources().getString(int resID)
. Try passing a Context
in your constructor and using it here like
Context mContext;
public AppSectionsPagerAdapter(FragmentManager fm,Context context) {
super(fm);
mContext = context
}
and then use mContext.getResources().getString(int resID)
回答2:
You can just remove the static
keyword from your class definition if it's an inner class.
EDIT: Don't do this--see comment below.
来源:https://stackoverflow.com/questions/20006736/cant-use-method-getstringint-resid-in-fragmentpageradapter