我正在学习菜单充气机,我正在遵循的教程说我们应该在这个函数中返回 false。但是,当我返回 true 时,我没有注意到任何变化或差异。所以问题是:
- 我应该返回什么,为什么?
谢谢
如果您希望进行正常处理,请返回 false。否则,返回真。
请参阅文档。
默认情况下,当您返回 false 时,Android 会调用与该项目关联的 Runnable 或运行您可以setIntent(...)
在 MenuItem 上设置的 Intent。如果你不希望这种情况发生,你应该返回 true。
假设您按如下方式创建 MenuItem。
MenuItem menu1 = new MenuItem(this);
menu1.setIntent(myIntent);
这myIntent
是单击菜单项时要执行的操作。例如:假设您的菜单项启动 GMail 应用程序以发送电子邮件,文本显示在您活动的文本视图中。
在您的onOptionsItemSelected()
回调中,您可以检查文本视图的值,如果文本视图不为空,则返回 false(文本框中有内容,您可以触发Intent
GMail),否则显示消息框“请键入message first" 并返回 true,因此 Android 不会触发 Intent。
public boolean onOptionsItemSelected (MenuItem item) {
if (textView.getText().trim().equals("")){
// show the message dialog
return true;
}
else {
// we have some message. We can let android know that
// it is safe to fire the intent.
return false;
}
}
希望这会有所帮助......快乐编码。
如果你处理事件返回true,否则返回false