2012-08-16 1 views
12

enter image description hereAndroid Sherlock ActionBar Pulsante

vicino torrente c'è una piccola freccia che u vuole per l'attività precedente quando si fa clic

voglio fare lo stesso nella mia app, ho usato

getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

devo usare onOptionsItemSelected?

La freccia è visualizzata, ma non accade nulla dopo aver fatto clic.

E ho due articoli nel mio menu, appaiono in tutto il mondo in cui io chiamo OnCreateOptionsMenu

questo è il mio codice articolo dove voglio apparire solo nella mia ultima attività, come?

 <item 
android:id="@+id/bAbout" 
android:title="About" 
android:showAsAction="always"/> 
+3

Proprio come un lato, il pulsante "su" non dovrebbe, necessariamente, portarti all'attività precedente (questo è ciò che fa il pulsante indietro esclusivamente, anche se spesso su e giù fa lo stesso) ma a un livello più alto nella gerarchia concettuale della tua app. È completamente spiegato qui: http://developer.android.com/design/patterns/navigation.html#up-vs-back –

risposta

24

Sì, è necessario implementare onOptionsItemSelected(). L'ID per tale pulsante è android.R.id.home

public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 

    case android.R.id.home: 
     // Do whatever you want, e.g. finish() 
     break; 

    default: 
     return super.onOptionsItemSelected(item); 
    } 
} 

e ho due articoli nel mio menu, appaiono in tutto il mondo in cui io chiamo onCreateOptionsMenu

Non sono sicuro di quale sia il problema qui è. Ovviamente dovresti implementare solo lo onCreateOptionsMenu() e gonfiare quella risorsa di menu dove vuoi. La rimozione di onCreateOptionsMenu() per tutte le attività che non dovrebbero avere queste opzioni dovrebbe funzionare.

+0

grazie Alextsc =), accettato! –