gpt4 book ai didi

android - MenuItem 未正确设置可见性

转载 作者:行者123 更新时间:2023-11-29 20:31:57 24 4
gpt4 key购买 nike

我得到菜单项,然后尝试设置可见性,但菜单项始终显示。谁能看出我哪里出错了?

菜单项不为空,因此已分配,所以不是它。

 MenuItem done = menu.findItem(R.id.action_done);
//animate the list view
if (isListEditing) {
done.setVisible(true);
menuItem.setTitle(this.getString(R.string.EditKey));
isListEditing = false;
adapter.endEdit();
} else {
done.setVisible(false);
menuItem.setTitle(this.getString(R.string.DoneKey));
isListEditing = true;
adapter.makeEditable();
}
this.invalidateOptionsMenu();

我在此处获取菜单引用:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_test_results, menu);
this.menu = menu;
return true;
}

更新:

我的印象是您必须在进行编辑后使选项菜单无效。但这就是导致编辑无法通过的原因。

最佳答案

根据docs , invalidateOptionsMenu() 所做的是:

Declare that the options menu has changed, so should be recreated. The onCreateOptionsMenu(Menu) method will be called the next time it needs to be displayed.

这意味着 onCreateOptionsMenu 将再次被调用,扩大您的原始菜单布局,从而放弃您之前对菜单项可见性的更改。

动态修改菜单内容的推荐方法是使用onPrepareOptionsMenu .因此,无论何时需要更新菜单项,都可以调用 invalidateOptionsMenu(),然后在 onPrepareOptionsMenu 中设置菜单项的可见性。

关于android - MenuItem 未正确设置可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31817102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com