7

Innerhalb einer Aktivitätsklasse, habe ich diese Klasse (von android Proben):GetResources von 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); 
    } 

} 

Ich möchte diese ändern: return "Titel n °" + (Position + 1); zu: return getActivity(). GetResources(). GetString (R.string.questionTabTitle) + (Position + 1);

Aber die Aktivität ist undefiniert. Wie kann ich die String-Ressource erhalten, die ich brauche?

Antwort

17

Sie können den Konstruktor dieser Klasse ändern und den Rahmen Ihrer Mutter Aktivität als Parameter übergeben:

private Context _context; 

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

Dann in Ihrer getPageTitle Funktion können Sie die Ressourcen zugreifen den neuen Kontext in der Klasse definiert werden:

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

Ich war zwar schwieriger ...: D danke! – Accollativo

Verwandte Themen