0

我发现一些关于 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" />

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

4

1 回答 1

0

当我使用处理程序时,它对我有用......

public void onItemClick(...) {
...
handler.postDelayed(new Runnable() {
                        public void run() {
                            entryOne.setVisible(true);
                                     entryTwo.setVisible(true);
                        }
                    }, 100);  
...
}
于 2012-09-27T13:28:49.433 回答