Sto utilizzando ActionBar con un menu a discesa e onNavigationItemSelected()
viene chiamato non appena viene creata l'attività, quindi viene chiamato il primo elemento. Il primo elemento del menu a discesa è Home, la stessa azione che viene eseguita premendo l'icona dell'applicazione con android.R.id.home
in modo che all'avvio dell'applicazione vengano chiamate automaticamente. Per evitare che ciò accada ho questo codice:onNavigationItemSelected in ActionBar viene richiamato all'avvio come può evitarlo?
if(this.getClass() != FrecView.class){ //if i am not currently on the Activity
Intent frec = new Intent(this, FrecView.class);
frec.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(frec);
}
ma ho ActionBar su tutte le mie attività in modo ogni volta che ogni attività è iniziata Si chiama sempre così devo mettere quel codice per ogni attività. Che cosa sta succedendo? Come posso evitare che ciò accada?
Ma se non lo metti a casa, chiamerà una delle mie Attività, tu dici che non è progettato per le attività di chiamata, quindi dovrei mettere tutto sulle icone di ActionBar? – Andres
@Andres: "Ma se non li metti a casa, chiamerà una delle mie attività" - no, * tu * chiamerai "una delle [tue] attività". Un 'Spinner' ha sempre una selezione, se si sceglie o la prima voce per impostazione predefinita. Se scegli di iniziare un'attività in quella prima selezione, è colpa tua, perché sei stato tu a scrivere quel codice. – CommonsWare
"è colpa tua" ... Forse non è destinato a essere un menu, ma sembra e si sente esattamente come uno. C'è un prezzo ragionevole per questo errore. Inoltre, diverse risorse tra cui SO suggeriscono questo approccio in modo errato: http://stackoverflow.com/questions/13958912/how-to-implement-a-drop-down-navigation-action-bar-in-android-after-youve-added – Alex