globales Menü

M

matth1as

Neues Mitglied
4
Hi,

ich hab ne Frage:
ich hab mehrere ListActivitys, und will nun unten noch ein kleines Menü (3 Buttons) einblenden. geht das irgendwie ?!

Alternativ würde auch folgenes gehen

Activity mit nem Container in der Mitte und einem Menü unten.
Und jetzt sollte man in den Container andere Layouts "includen" können, sodass das menü unten bleibt, geht das ?
 
Hiho,

wenn es ein permanentes Menu sein soll (immer sichtbar), würde ich es über das Layout-XML machen. Dieses kannst Du ja einfach in einem weiteren Layout unter dem Layout der ListView setzten. Evtl. muss Du da dann noch ein Layout ganz aussenrum packen.

Gruß
Webster
 
Ich hab dafür eine Abstracte Klasse die von Activity ableited alle aktivities die das gleiche Menü verwenden sollen leiten von dieser Klasse ab statt von Activity das funktioniert wunderbar.
Auf diese Art u. Weise hast ein Standard Menü welches sich in jeder Activity sogar erweitern lässt ... wenn daran interesse besteht veröffentliche ich gerne ein Beispiel.
 
Zuletzt bearbeitet:
Hey Scogit,wärst du mal so nett und könntest deinen Code veröffentlichen?Ich brauche durchgehend das gleiche Menü.
gruß und danke
 
Servus,

das ist eigentlich ganz einfach ... wahrscheinlich nicht die schönste Lösung aber es funktioniert

Als erstes brauchst du die XML Deklaration des Menü's
res/menu/options_menu.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/opt1" android:title="Option 1"></item>
    <item android:id="@+id/opt2" android:title="Option 2"></item>
    <item android:id="@+id/opt3" android:title="Option 3"></item>
</menu>
Dann die abstracte Klasse die dieses Menu handelt...abstract deshalb weil diese Klasse allein ja nicht instanziert werden soll.
Diese Klasse handelt Option 1-3 Welche das Globale Menu darstellen.

Code:
package com.android.GlobMenuHowto;

import android.app.Activity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;

public abstract class MainMenu extends Activity {

    @Override
    public boolean onCreateOptionsMenu(Menu objMenu) {
        MenuInflater objInflater = getMenuInflater();
        objInflater.inflate(R.menu.options_menu, objMenu);

        return super.onCreateOptionsMenu(objMenu);
    }

    public boolean onCreateOptionsMenu(Menu objMenu, int menuId) {
        MenuInflater objInflater = getMenuInflater();
        objInflater.inflate(menuId, objMenu);

        return super.onCreateOptionsMenu(objMenu);
    }

    public boolean onOptionsItemSelected(MenuItem objItem) {
        switch (objItem.getItemId()) {
        case R.id.opt1:
            break;
        case R.id.opt2:
            break;
        case R.id.opt3:
            break;
        }

        return true;
   }

}
Zum Schluss kommt die eigentliche Activity die von dieser Klasse ableitet und 3 weitere Optionen (Option 4-6) hinzugefügt. Alle Optionen ab 4 können in jeder Klasse die ableitet beliebig gesetzt werden 1-3 bleiben immer gleich.

Code:
package com.android.GlobMenuHowto;

import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class Main extends MainMenu {

    private static final int MENU_OPT_4 = 4;
    private static final int MENU_OPT_5 = 5;
    private static final int MENU_OPT_6 = 6;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    public boolean onCreateOptionsMenu(Menu menu) {
        menu.add(0, MENU_OPT_4, 0, "Option 4");
        menu.add(0, MENU_OPT_5, 0, "Option 5");
        menu.add(0, MENU_OPT_6, 0, "Option 6");
        return super.onCreateOptionsMenu(menu, R.menu.options_menu);
    }


    /* Handles item selections */
    public boolean onOptionsItemSelected(MenuItem item) {
        // Hier müssen noch Option 4-6 noch gehandelt werden
        return super.onOptionsItemSelected(item);
    }
}
Fertig, mehr braucht es nicht.
Wenn jemand eine schönere Lösung hat immer her damit.
 
Zuletzt bearbeitet:
Hey,
bei mir wird R.menu nicht gefunden....:(
 
liegt das Menü XML im Pfad res/menu/ ?

Wenn ja den Workspace noch mal neu bauen über Project/clean

btw. ich hab das obige Beispiel selbst getestet und kann garantieren das es so wie beschrieben funktioniert.
 
Zuletzt bearbeitet:

Ähnliche Themen

N
  • no1Ltan
Antworten
15
Aufrufe
1.827
jogimuc
J
T
Antworten
20
Aufrufe
1.786
Tom48
T
O
Antworten
1
Aufrufe
789
swa00
swa00
Zurück
Oben Unten