Über die App-Leiste können Sie Schaltflächen für Nutzeraktionen hinzufügen. Mit dieser Funktion können Sie die wichtigsten Aktionen für den aktuellen Kontext oben in der App. Beispiel: Eine Foto-App zeigt möglicherweise Teilen und Erstellen Albumschaltflächen, wenn sich der Nutzer seine Fotos ansieht. Wann? Wenn sich der Nutzer ein einzelnes Foto ansieht, werden in der App möglicherweise Zuschneiden und Filter.
Der Platz in der App-Leiste ist begrenzt. Wenn eine App mehr Aktionen deklariert, als passen in der App-Leiste werden die unnötigen Aktionen an ein Dreipunkt-Menü gesendet. Die App kann auch festlegen, dass eine Aktion immer im Dreipunkt-Menü angezeigt wird, statt in der App-Leiste.
<ph type="x-smartling-placeholder">Aktionsschaltflächen hinzufügen
Alle Aktionsschaltflächen und anderen Elemente, die im Aktionsüberlauf verfügbar sind, sind
in einer XML-Datei definiert
Speisekarte. Hinzufügen
Aktionsleiste hinzu, erstellen Sie eine neue XML-Datei im
res/menu/
-Verzeichnis.
Hinzufügen eines
<item>
-Element für jedes Element, das Sie in die Aktionsleiste aufnehmen möchten, wie in den
folgende Beispiel-XML-Datei für das Menü:
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <!-- "Mark Favorite", must appear as action button if possible. --> <item android:id="@+id/action_favorite" android:icon="@drawable/ic_favorite_black_48dp" android:title="@string/action_favorite" app:showAsAction="ifRoom"/> <!-- Settings, must always be in the overflow. --> <item android:id="@+id/action_settings" android:title="@string/action_settings" app:showAsAction="never"/> </menu>
Das Attribut app:showAsAction
gibt an, ob die Aktion
als Schaltfläche in der App-Leiste angezeigt. Wenn Sie
app:showAsAction="ifRoom"
, wie im Beispielcode
Aktion Favorit: Die Aktion wird als Schaltfläche angezeigt, wenn in der Datei Platz ist.
in der App-Leiste. Ist nicht genügend Platz vorhanden, werden überflüssige Aktionen an den
Dreipunkt-Menü. Wenn Sie app:showAsAction="never"
festlegen, wie im
die Aktion settings des Beispielcodes aus. Die Aktion wird immer im
Dreipunkt-Menü und wird nicht in der App-Leiste angezeigt.
Das System verwendet das Symbol der Aktion als Aktionsschaltfläche, wenn die Aktion angezeigt wird in der App-Leiste. Viele nützliche Symbole finden Sie Material-Symbole:
Auf Aktionen reagieren
Wenn der Nutzer eines der Elemente in der App-Leiste auswählt, ruft das System Ihre
Aktivität
onOptionsItemSelected()
-Rückrufmethode und übergibt
MenuItem
-Objekt
um anzuzeigen, auf welches Element getippt wurde. Bei der Implementierung von
onOptionsItemSelected()
, die Funktion
MenuItem.getItemId()
auf welches Element getippt wurde. Die zurückgegebene ID stimmt mit dem Wert überein, den Sie
im entsprechenden <item>
-Element deklarieren
android:id
-Attribut.
Beispielsweise prüft das folgende Code-Snippet, welche Aktion der Nutzer auswählt. Wenn die Methode die Aktion des Nutzers nicht erkennt, wird die Basisklasse aufgerufen. :
Kotlin
override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) { R.id.action_settings -> { // User chooses the "Settings" item. Show the app settings UI. true } R.id.action_favorite -> { // User chooses the "Favorite" action. Mark the current item as a // favorite. true } else -> { // The user's action isn't recognized. // Invoke the superclass to handle it. super.onOptionsItemSelected(item) } }
Java
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_settings: // User chooses the "Settings" item. Show the app settings UI. return true; case R.id.action_favorite: // User chooses the "Favorite" action. Mark the current item as a // favorite. return true; default: // The user's action isn't recognized. // Invoke the superclass to handle it. return super.onOptionsItemSelected(item); } }