Menü zur Actionbar hinzufügen

Menü zur Actionbar hinzufügen

Ich wurde letztens gefragt, ob ich nicht mal einen Artikel schreiben könnte, wie man in die obere Leiste (Actionbar) ein Menü einfügen könnte.
Dieser Bitte möchte ich nun gerne nachkommen und einen entsprechenden Artikel dazu liefern.

Unter dem Menü in der Actionbar versteht man diese drei Punkte oben rechts in einer App, die beim Klick dann ein Pop-Up mit Menü anzeigen. Hier in Beispiel:

OptionMenü auf meinem Galaxy S5, ohne Hardware Menütaste.

Die Programmierung des Menüs besteht im wesentlichen aus 2-3 Teilen.
Als erstes müssen wir eine XML-Datei erstellen, in der wir die einzelnen Menüpunkte angeben.
Anschließend erstellen wir für jeden Menüpunkt einen Text in der “strings.xml”-Datei. Wobei dieser Schritt optional ist.
Als letztes Programmieren wir in unserer Hauptklasse ein, dass es ein Menü gibt und wie wir auf die unterschiedlichen Menüpunkte reagieren wollen.

menu_main.xml

Wie angesprochen erstellen wir uns eine Datei, in der steht welches Elemente in dem Menü stehen sollen.

Erstellt dazu einen Ordner “menu” im Ordner “res”.
In diesen erstellt ihr eine Datei “menu_main.xml”.

In diese schreiben wir:





 

 


Dieses Menü enthält jetzt ein Element (item) mit dem Namen “action_info” und eines mit dem Namen “action_beenden”.
Für neue Elemente einfach weitere Items hinzufügen.

strings.xml

Im nächsten und optionalen Schritt ändern wir ein wenig an der strings.xml-Datei.
Diese ist für unterschiedliche Sprachen zuständig und befindet sich unter res -> values.
Wir erstellen für jedes Item nun einen Eintrag, mit dem Namen, der unter “title” steht.

In etwa so:

Beenden
Informationen

Java

Es gibt in der Programmierung zwei wichtige Funktionen.
Einmal eine, die Android dazu anweist ein Menü zu erstellen. Die andere Funktion definiert, wie die App auf Klicks regieren soll.

@Override
public boolean onCreateOptionsMenu(Menu menu) {
 getMenuInflater().inflate(R.menu.menu_main, menu);
 return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
 int id = item.getItemId();

 if (id == R.id.action_beenden) {
 
 // Hier eine Funktion aufrufen, die beim Klick auf "Beenden" ausgeführt werden soll.

 return true;
 }

 if (id == R.id.action_info) {
 
 // Hier eine Funktion aufrufen, die beim Klick auf "Informationen" ausgeführt werden soll.

 return true;
 }


 return super.onOptionsItemSelected(item);
}

Marvin

Ich bin 23 Jahre jung und studiere zurzeit Wirtschaftsinformatik an der Georg-August-Universität in Göttingen. Ich bin ein Mensch, der sich neben der Programmierung noch für tausend andere Dinge interessiert, die mal mehr und mal weniger verrückt sind. Vor allem aber bin ich Feuer und Flamme mit der Programmierung von eigenen kleinen Apps und Programmen, die mein Leben bereichern.

Kommentar hinzufügen

*Pflichtfeld