Доступ к getString() в android.support.v4.app.FragmentPagerAdapter?

В классе, расширяющем android.support.v4.app.FragmentPagerAdapter, есть ли способ получить доступ к методу Context.getString(..) без того, чтобы расширяющий класс был внутренним классом действия или проходил в каком-то контексте извне?

Спасибо за любую подсказку!


person stefan.at.wpf    schedule 01.01.2013    source источник


Ответы (3)


Из использования фрагмента:

 getActivity().getString(...)

От использования адаптера:

 getContext().getResources().getString(...)

Да, вам нужен контекст для доступа к ресурсам.

person Snicolas    schedule 01.01.2013
comment
Обратите внимание, что getActivity() будет нулевым, пока не будет вызван onActivityCreated(). - person dmon; 01.01.2013
comment
спасибо, но, к сожалению, я нахожусь в FragmentPagerAdapter, а не во фрагменте! - person stefan.at.wpf; 01.01.2013
comment
используйте getContext() так, и если у вас нет доступа к контексту, передайте его. - person Snicolas; 01.01.2013
comment
Вы нашли какое-нибудь решение? - person David; 07.11.2013
comment
Да, просто передайте контекст там, где вам это нужно. - person Snicolas; 07.11.2013

Из действия используйте:

this.getString(R.string.string_name);

Из фрагмента используйте:

getActivity.getString(R.string.string_name);

От адаптера используйте:

getContext().getResources().getString(R.string.string_name);
person Abhay Bhusari    schedule 23.10.2018

У меня была аналогичная проблема. Из макета ящика я хотел решить, какой фрагмент использовать в методе, вызываемом из вспомогательного класса.

Итак, в onCreateView...

String form = getResources().getStringArray(R.array.drawer_array)[i];
        Context context = getActivity().getApplicationContext();

        FragmentHelper fh = new FragmentHelper();
        int myFragment = fh.getCurrentFragment(form,context);

И в публичном FragmentHelper()...

    public int getCurrentFragment(String form, Context context){
              ...
              context.getResources().getString(R.string.label_item1);
              ...
    }

Хитрость заключается в том, чтобы добавить контекст перед getResources(). В противном случае мой стек показывал, что фрагмент не был привязан к активности.

Надеюсь, это поможет кому-то.

person fredrege    schedule 10.09.2014