我是android新手。我知道之前已经问过这个问题,但我仍然感到困惑。在onCreateOptionMenu()和onOptionItemSelected()中返回它们时该方法的作用
任何人都可以帮助我,我会有什么影响
1)如果我回归真实
2)如果我返回假
3)当我返回super.onCreateOptionMenu()和super.onOptionItemSelected
时会发生什么任何人都可以用好的例子向我解释。我仍然感到困惑。
答案 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
如果你写这个,那么它将首先调用你的父类这个方法如果你扩展这个类中的任何类。如果方法也在父类中,它将作为父类。