gpt4 book ai didi

android - 刷新 onCreateOptionsMenu android

转载 作者:行者123 更新时间:2023-11-29 22:01:03 28 4
gpt4 key购买 nike

我想在每次调用时刷新选项菜单,

我有一个功能,当用户在选项菜单中单击选项(添加/删除收藏夹)时,它会检查它是否是收藏夹并执行该功能,

问题:创建菜单后,它不会在用户第二次按下选项按钮时刷新 onCreateOptionMenu。我想在每次按下时刷新 optionMenu。这是我的代码

@Override
public boolean onCreateOptionsMenu(Menu menu) {

if (is_favorite.equals("1")) {
menu.add(1, 22 ,0,"Remove from Favourites").setIcon(R.drawable.favorites_unselected);

}
else{
menu.add(1, 11 ,0,"Add to Favourites").setIcon(R.drawable.favorites_selected);
}
return true;
}
@Override
public boolean onPrepareOptionsMenu (Menu menu)
{

return super.onPrepareOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {


case 11:
//addtofavouritestask
is_favorite = "1";

return true;
case 22:
//removeFromFavouritestask
is_favorite = "0";

return true;
default:
return super.onOptionsItemSelected(item);
}
}

最佳答案

根据文档,onCreateOptionMenu(菜单菜单) 被调用仅一次,因此它不会刷新您的菜单。您必须调用方法 onPrepareOptionsMenu(Menu) 来刷新它(“每次显示时更新菜单,请参阅onPrepareOptionsMenu(Menu) ").

所以这应该有效:

@Override
public boolean onCreateOptionsMenu(Menu menu) {

if (is_favorite.equals("1")) {
menu.add(1, 22 ,0,"Remove from Favourites").setIcon(R.drawable.favorites_unselected);

}
else{
menu.add(1, 11 ,0,"Add to Favourites").setIcon(R.drawable.favorites_selected);
}
return true;
}
@Override
public boolean onPrepareOptionsMenu (Menu menu)
{
menu.removeGroup(1);
if (is_favorite.equals("1")) {
menu.add(1, 22 ,0,"Remove from Favourites").setIcon(R.drawable.favorites_unselected);

}
else{
menu.add(1, 11 ,0,"Add to Favourites").setIcon(R.drawable.favorites_selected);
}
return super.onPrepareOptionsMenu(menu);
}

关于android - 刷新 onCreateOptionsMenu android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11929609/

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