访问android.support.v4.app.FragmentPagerAdapter中的getString()?

时间:2013-01-01 17:35:33

标签: android resources android-fragments android-context

在扩展android.support.v4.app.FragmentPagerAdapter的类中,有没有办法访问Context.getString(..)方法,而扩展类不是活动的内部类或从外部传递某些上下文?

感谢任何提示!

3 个答案:

答案 0 :(得分:7)

从片段中使用:

 getActivity().getString(...)

从适配器使用:

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

是的,您需要一个上下文来访问资源。

答案 1 :(得分:4)

在活动中,使用:

this.getString(R.string.string_name);

从片段中使用:

getActivity.getString(R.string.string_name);

在适配器中,使用:

getContext().getResources().getString(R.string.string_name);

答案 2 :(得分:2)

我有类似的问题。从抽屉布局中,我想决定在从辅助类调用的方法中使用哪个片段。

所以在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()之前添加上下文。否则,我的堆栈显示该片段未附加到活动。

希望这有助于某人。