在方法 onCreateOptionsMenu(Menu menu)
中,参数 Menu 和 menu 是什么意思,以及如何使用该方法。
我还有一个问题,为什么在
this
中使用此参数。
Intent intent = new Intent(this, DisplayMessageActivity.class);
在方法 onCreateOptionsMenu(Menu menu)
中,参数 Menu 和 menu 是什么意思,以及如何使用该方法。
我还有一个问题,为什么在
this
中使用此参数。
Intent intent = new Intent(this, DisplayMessageActivity.class);
菜单只是参数menu的类型。例如,您可以为名为string、dog等的变量指定字符串类型,并且在这种情况下,有一个名为menu的参数的Menu类型。
您可以使用onCreateOptionsMenu()来为活动指定选项菜单。在此方法中,您可以将菜单资源(在XML中定义)填充到回调中提供的菜单中。
例如:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.game_menu, menu);
return true;
}
欲了解更多信息,请访问此链接。
至于this,
在实例方法或构造函数中,this是对当前对象的引用 - 调用该方法或构造函数的对象。
例如:
public void sendMessage() {
Intent intent = new Intent(this, DisplayMessageActivity.class);
}
构造函数需要两个参数,并将上下文作为其第一个参数。 this 表示环境数据,并提供有关应用程序环境的全局信息。
如需了解您提供的 Intent 示例的更多信息,请查看此处。
onCreate
中设置 setHasOptionsMenu(true)
。 - Alexmelyon实现这个方法的目的是将您在R.menu.game_menu
布局文件中定义的项目填充到传递的menu
中。
#Java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.game_menu, menu);
return true;
}
#Kotlin
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.game_menu, menu)
return true
}
在填充菜单项后,您可能希望在选择它们时添加一些操作:
@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)
}
}
onCreateOptionsMenu
方法?onCreateOptionsMenu()
方法是在 Android 运行时需要创建选项菜单时被调用的。
如果您的应用程序是为 Android 2.3.x 及更低版本开发的,则系统会在用户首次打开菜单时调用 onCreateOptionsMenu() 方法来创建选项菜单。如果您是为 Android 3.0 及更高版本开发的,则系统会在启动活动时调用 onCreateOptionsMenu() 方法,以显示项目到应用栏中。
请参考其他答案。
onCreateOptionsMenu
返回 Boolean
类型?Activity.html#onCreateOptionsMenu
你必须返回 true 才能显示菜单;如果返回 false,它将不会被显示。onOptionsItemSelected
返回 Boolean
当你成功处理一个菜单项时,返回 true。如果你没有处理菜单项,应该调用 onOptionsItemSelected() 的超类实现(默认实现返回 false)。
Context
作为第一个参数。在语句Intent intent = new Intent(this, DisplayMessageActivity.class);
中,this
参数表示类的当前上下文。 - SripadRaj