Android:if onOptions ItemSelected return false会使应用程序崩溃
很长一段时间后,我回到了android编程,继续从我的新手位置向上 在此之前,此代码在我的主要活动中适用:Android:if onOptions ItemSelected return false会使应用程序崩溃,android,Android,很长一段时间后,我回到了android编程,继续从我的新手位置向上 在此之前,此代码在我的主要活动中适用: @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.action_do_task) { updateDisplay("Task done!"); } return false; }
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.action_do_task) {
updateDisplay("Task done!");
}
return false;
}
现在,我只能这样实施:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_do_task) {
doIt("done!");
}
//return false;
return super.onOptionsItemSelected(item);
}
如果我使用return false,程序将挂起,从错误消息中我无法找出原因
但是在Android帮助中,我读到默认值super.onOptionsItemSelected(item);也会返回false,那么为什么会这样呢?如果我手工编写返回false,为什么程序会崩溃
任何人都可以帮助理解这一点吗?资源id的类型是long。您应该将id变量声明为long类型
@Override
public boolean onOptionsItemSelected(MenuItem item) {
long id = item.getItemId();
if (id == R.id.action_do_task) {
doIt("done!");
}
return false;
//return super.onOptionsItemSelected(item);
}
我试着在我的程序中返回false它工作正常,注释掉doIt(“done!”)行;然后再试一次,我想是有错误的