7

からgetResources、私は(アンドロイドサンプルから)このクラスを持っている:アクティビティクラス内FragmentStatePagerAdapter

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

} 

私はこの変更したいと思います:リターン "タイトルN°" +(位置+ 1); to:return getActivity()。getResources()。getString(R.string.questionTabTitle)+(position + 1);

アクティビティは未定義です。私は必要な文字列リソースをどのように入手できますか?

答えて

17

あなたはこのクラスのコンストラクタを変更し、パラメータとして自分の親アクティビティのコンテキストを渡すことができます。

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); 
+0

私は難しかったが...: ありがとう! – Accollativo

関連する問題