奇怪:Android菜单图标仅显示一个可见图标

时间:2012-09-27 13:22:38

标签: android android-fragments android-menu

我发现了一些关于android菜单图标的奇怪行为。当我使用

通过onCreateOptionsMenu添加图标时
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" />

这是一个错误还是我做错了什么?

1 个答案:

答案 0 :(得分:0)

当我使用处理程序时,它与我合作......

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