在这里,我有大学名单。我使用menu bar
Favourite_icon
来关注特定的大学。然后Favourite_icon
更改为Favourite_icon1
当其他时间查看大学时,菜单栏Favourite_icon
应该为Favourite_icon1
。这样我就可以通过使用服务器API
来检查学院是否已经受到青睐了。那么如何从oncreate()方法设置菜单栏图标。
答案 0 :(得分:1)
如果您指的是Android菜单栏,则不应尝试在onCreate()
中更改它,因为它尚未实例化,并且始终会抛出NullPointerException
。
如果您正在等待API响应以查找收藏夹,则需要创建一个本地菜单变量来访问它。
Menu myMenu;
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
myMenu = menu;
return super.onPrepareOptionsMenu(menu);
}
然后,无论您的服务器API的回调方法应该是这样的:
void callback(boolean favorite) {
if (favorite) {
myMenu.findItem(R.id.myMenuItem).setIcon(R.drawable.Favourite_icon1);
}
}
答案 1 :(得分:0)
这样的事情:
@Override
protected void onCreate (Bundle savedInstanceState){
...
isSomethingInMenu = true;
invalidateOptionsMenu();
...
}
@Override
public boolean onCreateOptionsMenu (Menu menu){
getMenuInflater().inflate(R.menu.menu, menu);
menu.findItem(R.id.action_something).setVisible(isSomethingInMenu);
...
}