方法onCreateOptionsMenu(Menu menu)
中的两个参数菜单和菜单是什么以及如何使用此方法。
我有另一个问题,为什么在
this
参数
Intent intent = new Intent(this, DisplayMessageActivity.class);
答案 0 :(得分:18)
菜单只是参数菜单的类型。例如,您可以为名为string,dog等的变量设置String类型。在这种情况下,有一个名为menu的参数的Menu类型。
使用onCreateOptionsMenu()指定活动的选项菜单。 在此方法中,您可以将菜单资源(在XML中定义)扩展到回调中提供的菜单中。
例如:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.game_menu, menu);
return true;
}
有关详情,请访问此link。
至于this,
在实例方法或构造函数中,这是对当前对象的引用 - 正在调用其方法或构造函数的对象。
例如:
public void sendMessage() {
Intent intent = new Intent(this, DisplayMessageActivity.class);
}
构造函数接受两个参数,并将Context作为其第一个参数。 此表示环境数据,并提供有关应用程序环境的全局信息。
有关您提供的意图示例的详细信息,请查看this输出。
答案 1 :(得分:9)
实现此方法的目的是填充使用您在menu
布局文件中定义的itens传递的de R.menu.game_menu
。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.game_menu, menu);
return true;
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.game_menu, menu)
return true
}
使用itens对菜单进行充气后,您可能希望在选择它们时添加一些操作:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item:
// Action goes here
return true;
default:
return super.onOptionsItemSelected(item);
}
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.menu_item -> {
// Action goes here
true
}
else -> super.onOptionsItemSelected(item)
}
}
答案 2 :(得分:0)
首先在onCreateOptionsMenu(菜单菜单)功能中,您只传递一个参数而不是两个参数。你在那里传递菜单类的对象。我们使用此功能覆盖默认功能,以自定义我们自己的菜单,如在菜单中添加按钮和文本,图像等。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.game_menu, menu);
return true;
}
答案 3 :(得分:0)
onCreateOptionsMenu
? onCreateOptionsMenu()
在需要创建选项菜单时由Android运行时调用。
Android Developer Guide: Menus
如果您已经为Android 2.3.x及更低版本开发了应用程序,则当用户首次打开菜单时,系统会调用onCreateOptionsMenu()来创建选项菜单。如果您是为Android 3.0及更高版本开发的,则系统在启动活动时会调用onCreateOptionsMenu(),以便将项目显示在应用程序栏中。
请参阅其他答案。
onCreateOptionsMenu
返回Boolean
Activity.html#onCreateOptionsMenu
您必须返回true才能显示菜单;如果返回false,则不会显示。
onOptionsItemSelected
返回Boolean
成功处理菜单项后,返回true。如果不处理菜单项,则应调用onOptionsItemSelected()的超类实现(默认实现返回false)。