ne peut pas utiliser la méthode « getString (int resId) » dans FragmentPagerAdapter
-
20-12-2019 - |
Question
- J'ai la classe suivante dans mon activité de fragment. Maintenant, je veux obtenir le nom des onglets de strings.xml mais je ne peux pas utiliser la méthode.
getString(int resId)
il donne un message d'erreur "Impossible de faire une référence statique à la méthode non statique getString(int) à partir du type Context". - En méthode
public CharSequence getPageTitle(int position)
J'ai besoin d'être comme çaname = getString(R.string.mystring)
toute aide est appréciée.
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; } }
La solution
Tu as besoin d'un Context
objet d'appeler getResources().getString(int resID)
.Essayez de passer un Context
dans votre constructeur et l'utiliser ici comme
Context mContext;
public AppSectionsPagerAdapter(FragmentManager fm,Context context) {
super(fm);
mContext = context
}
puis utilisez mContext.getResources().getString(int resID)
Autres conseils
Vous pouvez simplement supprimer le static
mot-clé de la définition de votre classe s'il s'agit d'une classe interne.
MODIFIER:Ne faites pas cela - voir le commentaire ci-dessous.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow