невозможно использовать метод getString(int resId) в FragmentPagerAdapter
-
20-12-2019 - |
Вопрос
- У меня есть следующий класс в моей активности фрагмента, теперь я хочу получить имена вкладок из strings.xml, но я не могу использовать метод
getString(int resId)
выдает сообщение об ошибке «Невозможно создать статическую ссылку на нестатический метод getString(int) из контекста типа». - В методе
public CharSequence getPageTitle(int position)
мне нужно стать такимname = getString(R.string.mystring)
любая помощь приветствуется.
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; } }
Решение
Тебе необходимо Context
возражать против звонка getResources().getString(int resID)
.Попробуйте передать Context
в вашем конструкторе и использовать его здесь, например
Context mContext;
public AppSectionsPagerAdapter(FragmentManager fm,Context context) {
super(fm);
mContext = context
}
а затем использовать mContext.getResources().getString(int resID)
Другие советы
Вы можете просто удалить ключевое слово static
из определения вашего класса, если это внутренний класс.
Редактировать: не делайте этого - см. комментарий ниже.
Не связан с StackOverflow