我正在使用onPrepareOptionsMenu来设置两个按钮的可见性:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// First check items are accessible
if (menu.findItem(R.id.action_start_logging)!=null && menu.findItem(R.id.action_stop_logging)!=null)
{
// Set state of buttons based on current logging state
MenuItem sItem = menu.findItem(R.id.action_start_logging);
sItem.setVisible(!mService.isFileLogging);
sItem = menu.findItem(R.id.action_stop_logging);
sItem.setVisible(mService.isFileLogging);
}
return true;
}
此代码正常工作,直到系统显示“启动蓝牙?”从我的活动对话框中,然后.setvisible行抛出Nullpointerexception。尽管在尝试设置其可见性之前检查了MenuItems是否为空,但这仍然是。