7

all'interno di una classe di attività, ho questa classe (da campioni Android):getResources da 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); 
    } 

} 

Vorrei cambiare questo: "Titolo n °" ritorno + (posizione + 1); a: return getActivity(). GetResources(). GetString (R.string.questionTabTitle) + (posizione + 1);

Ma l'attività non è definita. Come posso ottenere la risorsa stringa di cui ho bisogno?

risposta

17

È possibile modificare il costruttore di questa classe e passare il contesto della vostra attività genitore come parametro:

private Context _context; 

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

Poi nella funzione getPageTitle è possibile accedere alle risorse utilizzando il nuovo contesto definito nella classe:

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

Anche se è stato più difficile ...: D grazie! – Accollativo

Problemi correlati