android - 从 FragmentStatePagerAdapter 获取资源

标签 android android-fragments android-activity android-adapter fragmentstatepageradapter

在一个 Activity 类中,我有这个类(来自 android 样本):

    public static class DemoCollectionPagerAdapter extends FragmentStatePagerAdapter {

    public DemoCollectionPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int i) {
        Fragment fragment = new QuestionFragment();
        Bundle args = new Bundle();
        args.putInt(QuestionFragment.ARG_OBJECT, i ); 
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public int getCount() {
        return questionList.length;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return "Title n°" + (position + 1);
    }

}

我想改变这个:return "Title n°"+ (position + 1); 到:返回 getActivity().getResources().getString(R.string.questionTabTitle) + (position + 1);

但 Activity 未定义。我怎样才能得到我需要的字符串资源?

最佳答案

您可以修改此类的构造函数并将父 Activity 的上下文作为参数传递:

private Context _context; 

//Constructor of the class
public DemoCollectionPagerAdapter(FragmentManager fm, Context c) {
    super(fm);
    _context = c;
}

然后在您的 getPageTitle 函数中,您可以使用类中定义的新上下文访问资源:

_context.getResources().getString(R.string.questionTabTitle) + (position + 1);

关于android - 从 FragmentStatePagerAdapter 获取资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16749020/

相关文章:

android - Activity.addContentView( View ) == ViewGroup.addContentView( View )?

android - 检查应用程序是否正在运行 - Kotlin

android - 通过命令行列出已安装的 sdk 包

android - 如何在单个 View 中实现两个 fragment ?

android - 调用覆盖 Activity 而不遵循 Activity 生命周期

android - 从服务传递信息到前台 Activity

android - R.layout-land 无法解析为变量

android - 需要帮助找出为什么我的应用程序在单击按钮后不离开主屏幕(这应该将我带到第二个 Activity 屏幕)

android - 方向更改后, fragment 对 mActivity 的引用变为空。无效的 fragment 状态维护

java - 如何将 Context 传递给 Fragment 类