这个方法做了什么super.onCreateOptionMenu()和super.onOptionsItemSelected(item)

时间:2016-08-11 04:30:43

标签: android oncreateoptionsmenu

我是android新手。我知道之前已经问过这个问题,但我仍然感到困惑。在onCreateOptionMenu()和onOptionItemSelected()中返回它们时该方法的作用

任何人都可以帮助我,我会有什么影响

1)如果我回归真实

2)如果我返回假

3)当我返回super.onCreateOptionMenu()和super.onOptionItemSelected

时会发生什么

任何人都可以用好的例子向我解释。我仍然感到困惑。

4 个答案:

答案 0 :(得分:4)

好的,让我们先看看您感兴趣的两种方法

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    int id = item.getItemId();

    if (id == R.id.action_settings) {
        return true;
    }
    // Activate the navigation drawer toggle
    if (mDrawerToggle.onOptionsItemSelected(item)) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

如果返回true ==>>>这意味着您要查看已膨胀的选项菜单。 if return false ==>>>你不想表现出来

├── <app>
│   ├── templates
│   │   ├── <app>
│   │   │   └── index.html
│   │   ├── rest_framework
│   │   |   └── api.html
│   │   └── rest_framework_docs
│   │       └── docs.html

根据文件 是的 - &gt;现在消耗的事件不应转发其他事件 false - &gt;转发给其他人消费

当我们处理多个片段并且每个片段都有自己的选项菜单并覆盖OnOptionItemSelected(主要是在平板电脑设计中)时,这个布尔返回类型实际上是有益的

在这种情况下,android跟踪每个片段OnOptionItemSelected方法,以避免那个

a)如果任何片段在onOptionsItemSelected()中消耗事件,则返回“true”,否则返回“false”

b)如果我们返回false,那么它将跟踪其他连接的片段(onOptionsItemSelected) 方法,直到它结束所有片段或某人消耗它。

你的第3个答案就像KrishnaJ写的那样

super.onCreateOptionMenu() super.onOptionItemSelected

如果你写这个,那么它将首先调用你的父类这个方法如果你扩展这个类中的任何类。如果方法也在父类中,它将作为父类。

答案 1 :(得分:1)

确定。我问你问题:

Que 1:

在onCreateOptionMenu()和onOptionItemSelected()中返回它们时该方法的作用

答:

onCreateOptionMenu()用于操作栏中的膨胀菜单。

onOptionItemSelected()用于捕获该菜单的点击

Que 2:

如果我返回真或假

答:

ref !!!如果您在该文件中输入了夸大的菜单或单击了定义的菜单,则应返回true。否则你应该返回false。所以编译器会在其他页面中找到男士或菜单项。

例如。你有一个活动和两个片段,然后如果在活动中找不到菜单或菜单项,那么编译器会在片段中找到它。如果你返回true,则不再进一步搜索。

阙3:

为什么要使用超级?

答:

所以编译器会知道在这个文件中没有用户定义的菜单或项目值。

答案 2 :(得分:0)

onCreateOptionMenu()方法,用于创建选项菜单。

onOptionsItemSelected()方法用于处理选项菜单的事件,即触发哪个菜单操作以及该操作的结果应该是什么等。

答案 3 :(得分:0)

我想在Dnyanesh的回答中添加您的第3个问题答案

super.onCreateOptionMenu() super.onOptionItemSelected

如果你写这个,那么它将首先调用你的父类这个方法如果你扩展这个类中的任何类。如果方法也在父类中,它将作为父类。

相关问题