1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

globales Menü

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von matth1as, 15.05.2010.

  1. matth1as, 15.05.2010 #1
    matth1as

    matth1as Threadstarter Junior Mitglied

    Beiträge:
    38
    Erhaltene Danke:
    4
    Registriert seit:
    10.04.2010
    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 ?
     
  2. Webster, 17.05.2010 #2
    Webster

    Webster Fortgeschrittenes Mitglied

    Beiträge:
    388
    Erhaltene Danke:
    21
    Registriert seit:
    10.08.2009
    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
     
  3. Scogit, 19.05.2010 #3
    Scogit

    Scogit Android-Hilfe.de Mitglied

    Beiträge:
    69
    Erhaltene Danke:
    2
    Registriert seit:
    16.08.2009
    Phone:
    Samsung Galaxy
    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: 19.05.2010
  4. -chriss-, 23.05.2010 #4
    -chriss-

    -chriss- Android-Hilfe.de Mitglied

    Beiträge:
    138
    Erhaltene Danke:
    6
    Registriert seit:
    26.10.2009
    Hey Scogit,wärst du mal so nett und könntest deinen Code veröffentlichen?Ich brauche durchgehend das gleiche Menü.
    gruß und danke
     
  5. Scogit, 25.05.2010 #5
    Scogit

    Scogit Android-Hilfe.de Mitglied

    Beiträge:
    69
    Erhaltene Danke:
    2
    Registriert seit:
    16.08.2009
    Phone:
    Samsung Galaxy
    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: 25.05.2010
  6. -chriss-, 26.05.2010 #6
    -chriss-

    -chriss- Android-Hilfe.de Mitglied

    Beiträge:
    138
    Erhaltene Danke:
    6
    Registriert seit:
    26.10.2009
    Hey,
    bei mir wird R.menu nicht gefunden....:(
     
  7. Scogit, 26.05.2010 #7
    Scogit

    Scogit Android-Hilfe.de Mitglied

    Beiträge:
    69
    Erhaltene Danke:
    2
    Registriert seit:
    16.08.2009
    Phone:
    Samsung Galaxy
    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: 26.05.2010

Diese Seite empfehlen