2014-10-26 10 views
6

Ich verwende den NavigationDrawer, der von der Vorlage erstellt wurde (wenn ein neues Projekt gestartet wird). Ich versuche, Material Design-Kompatibilität zu erhalten, damit ich AppCompat v7 verwenden kann. Ich folgte these instructions eine Toolbar als meine ActionBar zu setzen (dh auf meiner Symbolleiste setSupportActionBar) und ich eine NPE in meinem NavigationDrawerFragment bekommen (innen onCreateView)NavigationDrawerFragment funktioniert nicht mit AppCompat Toolbar

mDrawerListView.setAdapter(new ArrayAdapter<String>(
      getActionBar().getThemedContext(), 
      android.R.layout.simple_list_item_activated_1, 
      android.R.id.text1, ... 

jetzt habe ich die Probleme vermuten, mit dem getActionBar ist() Methode innerhalb Fragment:

private ActionBar getActionBar() { 
    return ((ActionBarActivity) getActivity()).getSupportActionBar(); 
} 

aber ich habe keine Ahnung, warum - ich setSupportActionBar (Toolbar) in Aktivität des onCreate vor dem Aufruf setUp() auf der NavigationDrawerFragment ...

rief ich Wenn jemand eine Ahnung hat, warum das passiert, bitte helft!

Antwort

6

Es scheint, wie das Problem war, dass onCreateView fragment vor onCreate Aktivität genannt wurde und somit gibt es keinen ActionBar Satz. Ich habe gerade den problematischen Code in das onActivityCreated-Fragment des Fragments verschoben und es funktioniert wie ein Zauber.

+0

können Sie bitte ausarbeiten? – bernlim

+0

@bernlim Sicher. Das Problem war, dass beim Erstellen meiner Aktivität die onCreateView-Methode des Fragments vor der onCreate-Aktivität aufgerufen wurde. Das NPE tritt in onCreateView des Fragments auf, weil ich versuche, die Aktionsleiste zu erhalten, die zu diesem Zeitpunkt null ist, da die onCreate-Aktivität noch nicht aufgerufen wurde und ActionBar daher noch nicht initialisiert/gesetzt/erstellt wurde. Macht das Sinn? – Djordje

4

ersetzen nur getActionBar().getThemedContext() mit getActivity()

+1

aber getActivity() ist nicht äquivalent zu getActionBar(). GetThemedContext() obwohl es Kontext geben kann. – 7383

Verwandte Themen