невозможно использовать метод getString(int resId) в FragmentPagerAdapter

StackOverflow https://stackoverflow.com//questions/20006736

Вопрос

  1. У меня есть следующий класс в моей активности фрагмента, теперь я хочу получить имена вкладок из strings.xml, но я не могу использовать метод getString(int resId) выдает сообщение об ошибке «Невозможно создать статическую ссылку на нестатический метод getString(int) из контекста типа».
  2. В методе 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 из определения вашего класса, если это внутренний класс.

Редактировать: не делайте этого - см. комментарий ниже.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top