Apps für Android programmieren leicht gemacht!

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:

<!--
  ~ Copyright 2016 www.droid-lernen.de
  ~
  ~ Licensed under the Apache License, Version 2.0 (the „License“);
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~ http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an „AS IS“ BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="de.droid_lernen.test.MainActivity">

    <item
        android:id="@+id/action_info"
        android:orderInCategory="100"
        android:title="@string/action_info"
        app:showAsAction="never" />

   <item
        android:id="@+id/action_beenden"
        android:orderInCategory="100"
        android:title="@string/action_beenden"
        app:showAsAction="never" />

</menu>

 

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:

<string name="action_beenden">Beenden</string>
<string name="action_info">Informationen</string>

 

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