getResources from FragmentStatePagerAdapter
E

1

7

Inside an activity class, I have this class (from android samples):

    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);
    }

}

I would like to change this: return "Title n°" + (position + 1); to: return getActivity().getResources().getString(R.string.questionTabTitle) + (position + 1);

But the activity is undefined. How could I get the string resource that I need?

Enisle answered 25/5, 2013 at 11:22 Comment(0)
A
19

You can modify the constructor of this class and pass the context of your parent activity as a parameter:

private Context _context; 

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

Then in your getPageTitle function you can access the resources using the new context defined in the class:

_context.getResources().getString(R.string.questionTabTitle) + (position + 1);
Amboina answered 25/5, 2013 at 11:29 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.