2013-01-01 4 views

Antwort

4

Von einem Fragment Verwendung:

getActivity().getString(...) 

Von einem Adapter verwenden:

getContext().getResources().getString(...) 

Ja, benötigen Sie einen Kontext auf die Ressourcen zuzugreifen.

+3

Beachten Sie, dass 'getActivity()' null ist, bis 'onActivityCreated()' aufgerufen wird. – dmon

+0

danke, aber leider bin ich in einem FragmentPagerAdapter, kein Fragment! –

+0

Verwenden Sie getContext() so, und wenn Sie keinen Zugriff auf einen Kontext haben, übergeben Sie es. – Snicolas

2

Ich hatte ein ähnliches Problem. Aus einem Schubladenlayout wollte ich entscheiden, welches Fragment in einer von einer Hilfsklasse aufgerufenen Methode verwendet werden soll.

So in onCreateView ...

String form = getResources().getStringArray(R.array.drawer_array)[i]; 
     Context context = getActivity().getApplicationContext(); 

     FragmentHelper fh = new FragmentHelper(); 
     int myFragment = fh.getCurrentFragment(form,context); 

Und in der Öffentlichkeit FragmentHelper() ...

public int getCurrentFragment(String form, Context context){ 
       ... 
       context.getResources().getString(R.string.label_item1); 
       ... 
    } 

Der Trick Zusammenhang vor GetResources hinzufügen zu sein(). Ansonsten zeigte mein Stack, dass das Fragment keiner Aktivität zugeordnet war.

Ich hoffe, das hilft jemandem.

Verwandte Themen