Impossibile utilizzare il metodo "getString (int resid)" in frammentpageradapter
-
20-12-2019 - |
Domanda
- .
- Ho la seguente classe nell'attività del mio frammento ora voglio ottenere il nome delle schede da stringhe.xml ma non riesco a utilizzare il metodo
getString(int resId)
dà un messaggio di errore "Non è possibile effettuare un riferimento statico al non-Metodo statico GetString (INT) dal contesto del tipo ". - In Metodo
public CharSequence getPageTitle(int position)
Ho bisogno di ottenere questoname = getString(R.string.mystring)
Qualsiasi aiuto è apprezzato.
..public static class AppSectionsPagerAdapter extends FragmentPagerAdapter { public AppSectionsPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int i) { switch (i) { case 0: Fragment fragment = new Activity1(); return fragment; case 1: Fragment fragment1 = new Activity2(); return fragment1; default: return new Activity2(); } } @Override public int getCount() { return 2; } public CharSequence getPageTitle(int position) { String name = null; if (position==0) { name = "Movie Details"; }else if (position==1) { name = "Movie Comments"; } return name; } }
Soluzione
È necessario un oggetto Context
per chiamare getResources().getString(int resID)
.Prova a passare un Context
nel tuo costruttore e usarlo qui come
Context mContext;
public AppSectionsPagerAdapter(FragmentManager fm,Context context) {
super(fm);
mContext = context
}
.
e quindi utilizzare mContext.getResources().getString(int resID)
Altri suggerimenti
Puoi semplicemente rimuovere la parola chiave static
dalla definizione della tua classe se è una classe interna.
Modifica: non farlo - vedi Commento qui sotto.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow