2012-09-27 72 views
0

我發現了一些關於android菜單圖標的奇怪行爲。當我通過onCreateOptionsMenu與奇怪:Android菜單圖標只出現一個可見圖標

setVisible(false) 

添加圖標,圖標將沒有任何顯示,也不會,如果我在後來的電話呼叫

setVisible(true) 

出現。見我的例子:

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    ... 
    entryOne = menu.add("menuOne"); 
    entryOne.setIcon(...); 
    entryOne.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 
    entryOne.setVisible(false); 

    entryTwo = menu.add("menuTwo"); 
    entryTwo.setIcon(...); 
    entryTwo.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 
    entryTwo.setVisible(false); 

    // entryThree = menu.add("menuThree"); 
    // entryThree.setIcon(...); 
    // entryThree.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 
    // entryThree.setVisible(true); 

    super.onCreateOptionsMenu(menu, inflater); 
} 

... 

public void onItemClick(...) { 
... 
    entryOne.setVisible(true); 
    entryTwo.setVisible(true); 
... 
} 

當然我設置

setHasOptionsMenu(true); 

奇怪的是,當我去掉最後一個行onCreateOptionsMenu一切正常。

<uses-sdk android:minSdkVersion="11" 
      android:targetSdkVersion="14" /> 

這是一個錯誤還是我做錯了什麼?

回答

0

它的工作與我,當我使用的處理器...

public void onItemClick(...) { 
... 
handler.postDelayed(new Runnable() { 
         public void run() { 
          entryOne.setVisible(true); 
            entryTwo.setVisible(true); 
         } 
        }, 100); 
... 
} 
+0

不,不是在這裏工作。當我在示例中展示它時,它是否失敗? – Stefan

+0

是的,在使用處理程序之前,該項目不會是可見的..唯一的區別是我使用menu.findItem(id).setVisible(true);保存菜單實例之後.. – Nermeen

+0

還沒有。我會認爲這是一個錯誤... – Stefan