2012-04-25 16 views

Odpowiedz

31

Można utworzyć menu w kodzie tak:

/*************************************/ 
/* Create the actionbar options menu */ 
/*************************************/ 
@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    menu.add(0, 0, 0, "History").setIcon(R.drawable.ic_menu_recent_history) 
      .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); 
    menu.add(0, 1, 0, "Settings").setIcon(R.drawable.ic_menu_manage) 
      .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); 

    return true; 
} 

Wewnątrz czek na wartość logiczną.

Będziesz musiał wywołać supportInvalidateOptionsMenu(), aby odtworzyć menu.

+0

Dzięki. Działa świetnie!! – hdoria

7

można utrzymać flagę, która określa, czy należy wyświetlać Twój przycisk

boolean hasRss = false; 

następnie nadpisać metoda onCreateOptionsMenu (MENU) i sprawdzić, czy hasRss jest prawdziwe, czy fałszywe. Jeśli jest prawdą, dodaj przycisk, aby cokolwiek zrobić. Następnie można dodać swoje normalne przyciski, które mają być zawsze pojawiają się niezależnie od tego czy masz RSS lub nie

@Override 
    public boolean onCreateOptionsMenu(Menu menu) 
    { 
     if (hasRss) 
     { 
      menu.add(Menu.NONE, 0, Menu.NONE, "View RSS").setIcon(R.drawable.ic_menu_view) 
         .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 
     } 

     menu.add(Menu.NONE, 1, Menu.NONE, "Normal button that is always there").setIcon(R.drawable.ic_menu_button) 
         .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 

    } 

trzeba będzie ustawić wartość hasRss = true kiedy tylko odzyskać swoje wartości i zadzwonić invalidateOptionsMenu(); przeładować akcję elementy menu paska

+0

Dzięki. Działa świetnie!! – hdoria

Powiązane problemy