2015-09-11 7 views
11
  • Sono nuovo di Android e di apprendimento per creare frammenti di android da seguendo questo
    esempio:non può risolvere il metodo getActivity()

  • Il codice tra Navigando tra le voci di menu e aggiungere la navigazione L'intestazione consiste in un metodo getActivity().

  • Poiché l'autore non ha menzionato dove incollare questo codice, ho incollato nel mio file MainActivity.java

  • è un codice tra Navigando tra le voci di menu eaggiungere la navigazione Intestazione incollato in posizione corretta da me ?

  • Nel metodo selectDrawerItem(MenuItem menuItem) c'è un commento // Create a new fragment and specify the planet to show based on position
    Vuol autore si aspetta che aggiunga qualcosa qui.

  • Il layout file di progetto creato da me su Android Studio è la seguente: AndroidStudio Snapshot
+0

getActivity() viene chiamato generalmente all'interno di un frammento. –

risposta

20

per attivitá non ha un metodo getActivity().
I frammenti hanno.

Perché getActivity() dice: "restituisci l'attività che contiene me".

E mentre i Fronti sono contenuti in Attività, le Attività non lo sono.

+0

Sì, l'ho analizzato e poi ho apportato le modifiche al mio codice e ora ho riscontrato l'errore NullPointerException. Sto facendo le cose nel modo giusto. Sono nuovo di Android e il mio primo esempio di provare Android. – Akki

+0

Potresti postare del codice rilevante, piuttosto che descriverlo? vale a dire il metodo Main Activity onCreate()? –

+0

@Override protetto void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); // Imposta una barra degli strumenti per sostituire l'ActionBar. toolbar = (Barra strumenti) findViewById (R.id.toolbar); setSupportActionBar (barra degli strumenti); NavigationView nvDrawer = (NavigationView) findViewById (R.id.nvView); // Impostazione vista cassetto setupDrawerContent (nvDrawer); // Trova la nostra vista del cassetto – Akki

31

È possibile utilizzare:

this 

Invece di:

getActivity() 

:))

0

In Frammento è meglio usare onAttach() per ottenere l'istanza di un'attività collegato ad esso.

@Override 
    public void onAttach(Activity activity) { 
     super.onAttach(activity); 
    }