2013-05-08 28 views
1

我有一個像如何獲得另一個菜單項,在onOptionItemSelected

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
<item 
    android:id="@+id/action_select_all" 
    android:orderInCategory="100" 
    android:showAsAction="never" 
    android:title="@string/action_select_all"/> 
<item 
    android:id="@+id/action_deselect_all" 
    android:orderInCategory="100" 
    android:showAsAction="never" 
    android:title="@string/action_deselect_all" 
    android:visible="false"/> 
</menu> 

菜單文件,我想只能有一個時間顯示,當我在一個點擊,其他節目是不可見的。我們能否通過任何活動方式獲得活動的菜單。

+1

可能重複:http://stackoverflow.com/questions/7133141/android-changing-option-menu-items-programmatically – sandkasten 2013-05-08 11:44:23

+0

設置單擊菜單上的可見性。 – Unknown 2013-05-08 11:45:00

+0

@CobraAjgar但在公共布爾onOptionsItemSelected(MenuItem項目){........},我們得到的項目,所以如何設置其他項目的可見性? – Raja 2013-05-08 11:49:26

回答

2

onCreateOptionsMenu(Menu menu)

充氣後做

if (CONDITION) { 
      MenuItem item = menu.findItem(R.id.action_select_all); 
      item.setVisible(false); 
     } 
        else 
         { 
      MenuItem item = menu.findItem(R.id.action_deselect_all); 
      item.setVisible(false); 
     } 

確保您撥打invalidateOptionsMenu();,當你需要刷新菜單

+0

你的方法是相當不錯的,但不工作,因爲我顯示的ActionBar菜單,因此onPrepareOptionsMenu不叫當我點擊菜單。也我不能調用invalidateOptionsMenu();作爲我的應用程序的minSdkVirsion = 8 – umesh 2013-05-08 12:10:42

+0

我們可以檢查哪個版本的Android應用程序正在運行,程序,然後我們可以爲invalidateOptionsMenu條件()調用 – Raja 2013-05-08 12:15:44

+0

是使用android.os.Build.VERSION.SDK_INT爲 – 2013-05-08 12:16:47

相關問題