Fai*_*med 2 android oncreateoptionsmenu
我是安卓新手。我知道这个问题以前曾被问过,但我仍然很困惑。当我的 onCreateOptionMenu() 和 onOptionItemSelected() 返回它们时,此方法会做什么
任何人都可以帮助我我会产生什么效果
1)如果我返回 true
2)如果我返回 false
3)当我返回 super.onCreateOptionMenu() 和 super.onOptionItemSelected 时会发生什么
谁能用一个很好的例子向我解释一下这一点。我还是很困惑。
好吧,我们先看看你感兴趣的两种方法
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
Run Code Online (Sandbox Code Playgroud)
if return true ==>>> 这意味着你想看到你已经膨胀的选项菜单。如果 return false ==>>> 你不想显示它
@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);
}
Run Code Online (Sandbox Code Playgroud)
根据文档 true --> 事件已消耗 现在不应转发其他事件 false --> 转发以供其他事件消耗
当我们处理多个片段并且每个片段都有自己的选项菜单和 OnOptionItemSelected 的重写时,这种布尔返回类型实际上很有用(主要在平板电脑设计中)
在这种情况下,android 跟踪每个片段 OnOptionItemSelected 方法,以避免这种情况
a) 如果任何片段正在 onOptionsItemSelected() 中消耗事件,则返回“true”,否则返回“false”
b) 如果我们返回 false,那么它将跟踪其他连接的片段的 (onOptionsItemSelected) 方法,直到它结束所有片段或有人消耗它。
你的第三个答案是 KrishnaJ 写的
super.onCreateOptionMenu()和super.onOptionItemSelected
如果你这样写,那么如果你扩展这个类中的任何类,它将首先调用你的父类的这个方法。如果方法也在父类中,它将作为父类工作。
| 归档时间: |
|
| 查看次数: |
3722 次 |
| 最近记录: |