2012-08-16 18 views
12

enter image description hereAndroid Sherlock ActionBar Up-Taste

Near-Stream gibt es einen kleinen Pfeil, der u zur vorherige Aktivität nimmt, wenn

geklickt

Ich möchte das gleiche in meiner app machen, habe ich

getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

muss ich onOptionsItemSelected verwenden?

Der Pfeil erscheint, aber nach dem Klicken passiert nichts.

Und ich habe zwei Artikel in meinem Menü, erscheinen sie überall, wo ich anrufen OnCreateOptionsMenu

das ist mein Punkt-Code, wo ich will nur in meiner letzten Tätigkeit erscheinen, wie?

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

Genau wie nebenbei sollte der "up" -Button nicht unbedingt zur vorherigen Aktivität führen (das ist, was der Zurück-Knopf ausschließlich tut, obwohl oft oben und zurück dasselbe tun), aber auf ein höheres Niveau in der konzeptionellen Hierarchie Ihrer App. Es ist vollständig hier erklärt: http://developer.android.com/design/patterns/navigation.html#up-vs-back –

Antwort

24

Ja, Sie müssen onOptionsItemSelected() implementieren. Die ID für diese Schaltfläche ist 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); 
    } 
} 

Und ich habe zwei Artikel in meinem Menü, erscheinen sie überall, wo ich OnCreateOptionsMenu nennen

Ich bin nicht sicher, was das Problem hier ist. Natürlich sollten Sie nur onCreateOptionsMenu() implementieren und die Menüressource dort aufblasen, wo Sie sie haben möchten. Das Entfernen von onCreateOptionsMenu() für alle Aktivitäten, die diese Optionen nicht haben sollen, sollte funktionieren.

+0

Dank Alextsc =), Akzeptiert! –