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
risposta
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.
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
Potresti postare del codice rilevante, piuttosto che descriverlo? vale a dire il metodo Main Activity onCreate()? –
@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
È possibile utilizzare:
this
Invece di:
getActivity()
:))
In Frammento è meglio usare onAttach() per ottenere l'istanza di un'attività collegato ad esso.
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
}
getActivity() viene chiamato generalmente all'interno di un frammento. –