7

我正在学习菜单充气机,我正在遵循的教程说我们应该在这个函数中返回 false。但是,当我返回 true 时,我没有注意到任何变化或差异。所以问题是:

  • 我应该返回什么,为什么?

谢谢

4

2 回答 2

15

如果您希望进行正常处理,请返回 false。否则,返回真。

请参阅文档

默认情况下,当您返回 false 时,Android 会调用与该项目关联的 Runnable 或运行您可以setIntent(...)在 MenuItem 上设置的 Intent。如果你不希望这种情况发生,你应该返回 true。

假设您按如下方式创建 MenuItem。

MenuItem menu1 = new MenuItem(this);
menu1.setIntent(myIntent);

myIntent是单击菜单项时要执行的操作。例如:假设您的菜单项启动 GMail 应用程序以发送电子邮件,文本显示在您活动的文本视图中。

在您的onOptionsItemSelected()回调中,您可以检查文本视图的值,如果文本视图不为空,则返回 false(文本框中有内容,您可以触发IntentGMail),否则显示消息框“请键入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;
    }
}

希望这会有所帮助......快乐编码。

于 2012-08-12T10:33:36.560 回答
5

如果你处理事件返回true,否则返回false

于 2012-08-12T10:29:53.800 回答