我发现了一些关于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" />
这是一个错误还是我做错了什么?
答案 0 :(得分:0)
当我使用处理程序时,它与我合作......
public void onItemClick(...) {
...
handler.postDelayed(new Runnable() {
public void run() {
entryOne.setVisible(true);
entryTwo.setVisible(true);
}
}, 100);
...
}