在扩展android.support.v4.app.FragmentPagerAdapter
的类中,有没有办法访问Context.getString(..)
方法,而扩展类不是活动的内部类或从外部传递某些上下文?
感谢任何提示!
答案 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()之前添加上下文。否则,我的堆栈显示该片段未附加到活动。
希望这有助于某人。