当我的应用程序中发生某些事情时,我试图启用/禁用刷新按钮,但我得到一个空指针异常,我无法找出原因。我正在根据情况将布尔值addingRefresh
或removingRefresh
设置为true,然后调用invalidateOptionsMenu()
来启用或禁用按钮,但是菜单项返回空值。我在网上搜索了一下原因,但什么也找不到。onCreateOptionsMenu()
的代码(调用invalidateoptionsmenu()时调用)
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (addingRefresh) {
//below line as well as other similar line cause exceptions
menu.findItem(R.id.action_refresh).setEnabled(true);
addingRefresh = false;
} else if (removingRefresh) {
menu.findItem(R.id.action_refresh).setEnabled(false);
removingRefresh = false;
} else if (addingLoading) {
}
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
return super.onCreateOptionsMenu(menu);
}
谢谢你的帮助!
最佳答案
下面是一些您要完成的清理代码:
private MenuItem mMenuItem;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
final MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
mMenuItem = menu.findItem(R.id.action_refresh)
return true;
}
private void setMenuItemEnabled(boolean enabled) {
mMenuItem.setEnabled(enabled);
}
希望能有帮助!