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?
The documentation for getResources() says that it will [r]eturn a Resources instance for your application's package. In code examples I've seen this used to access the resources in res , but it seems like you can just access them directly. For example to retrieve my_string from res/values/strings.
If you're using android studio you should be able to simply start typing R. string. and it will then show suggestions from the strings.
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);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With