2011-08-10 17 views
11

ViewFlipper içeren bir Activity ürünüm var ve her görünüm için ViewFlipper içinde farklı bir seçenek menüsü göstermek istiyorum. Yani, menü düğmesine basıldığında görüntülenen menü türü, geçerli görünümün türüne bağlı olacaktır. Bununla birlikte, onCreateOptionsMenu() sadece bir kez çağrılır (seçenek menüsünü ilk kez gösterirken), böylece farklı menüler oluşturulabilir. Bunu nasıl çözebilirim?Android: Bir Etkinlikte Birden Çok Seçenek Menüsü

Herhangi bir öneri takdir edildi.

cevap

28

Önce faaliyetlerinin birinin içinde, onPrepareOptionsMenu yöntemi denir iken kullanıcı Android cihazlarında Menü basar yaklaşık onPrepareOptionsMenu(Menu menu)

Her zaman okuyorum. Menü ilk kez gösterildiğinde (yani sadece bir kez), onCreateOptionsMenu yöntemi çağrılır. Temel olarak onPrepareOptionsMenu yöntemi, belirli menü öğelerini etkinleştirme/devre dışı bırakma veya koşullara bağlı olarak menü öğesi metnini değiştirme gibi herhangi bir değişiklik yapmanız gereken yöntemdir.

Yani bu (kullanmayın onCreateOptionsMenu(Menu menu)) do

//Dynamically create context Menu 
    @Override 
    public boolean onPrepareOptionsMenu(Menu menu) { 
     menu.clear(); //Clear view of previous menu 
     MenuInflater inflater = getMenuInflater(); 
     if(condition_true) 
      inflater.inflate(R.menu.menu_one, menu); 
     else 
      inflater.inflate(R.menu.menu_two, menu); 
     return super.onPrepareOptionsMenu(menu); 
    }