2009-12-31 5 views
6

Wissen Sie, wie Sie bestehende Menüs umbenennen?Wie benenne ich einen bestehenden Menüpunkt um?

Ich kann umbenennen, wenn Menüeintrag drücken. Aber ich weiß nicht, wie man auf den Menüpunkt zugreift, wenn ich den Knopf drücke.

Bitte um Rat.

+0

Ihre Frage ist ein wenig unklar. Sie scheinen die Begriffe "Menü", "Menüelement" und vielleicht "Knopf" zu verwirren. Könntest Du das erläutern? –

Antwort

27

Es wäre gut, wenn Sie die Frage ein wenig klären können, aber jedes Mal, wenn der Benutzer drückt das Menü auf ihrem Android-Gerät, während im Innern eines Ihrer Aktivitäten, die onPrepareOptionsMenu Methode aufgerufen wird. Wenn das erste Mal das Menü angezeigt wird (d. H. nur einmal), wird die onCreateOptionsMenu-Methode aufgerufen.

Im Grunde genommen müssen Sie bei der Methode onPrepareOptionsMenu Änderungen wie das Aktivieren/Deaktivieren bestimmter Menüelemente oder das Ändern des Menüpostentexts in Abhängigkeit von den Umständen vornehmen.

Als Beispiel:

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 

    // Check current message count 
    boolean haveMessages = mMessageCount != 0; 

    // Set 'delete' menu item state depending on count 
    MenuItem deleteItem = menu.findItem(R.id.menu_delete); 
    deleteItem.setTitle(haveMessages ? R.string.delete : R.string.no_messages); 
    deleteItem.setEnabled(haveMessages); 

    return super.onPrepareOptionsMenu(menu); 
} 
+2

Danke für die Antwort. Ich habe die Lösung gefunden: public boolean onMenuOpened (int featureId, Menu menu) wäre für meinen Fall in Ordnung. – AndroiDBeginner

+0

+1 für kbd Tag, nette, die ich nicht kannte;) – Guillaume

0

Die onPrepareOptionsMenu ist der richtige Ort, um Änderungen an menuitems zu machen.

+0

Aus der Dokumentation scheint es so. Irgendeine Idee, wofür die Methode onMenuOpened verwendet werden könnte? Ich kann mein Menü auch darin ändern. – barry

Verwandte Themen