什么是onCreateOptionsMenu(菜单菜单)

时间:2016-07-05 05:07:13

标签: android android-menu

方法onCreateOptionsMenu(Menu menu)中的两个参数菜单和菜单是什么以及如何使用此方法。 我有另一个问题,为什么在

中使用this参数
Intent intent = new Intent(this, DisplayMessageActivity.class);

4 个答案:

答案 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

的Java

@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对菜单进行充气后,您可能希望在选择它们时添加一些操作:

的Java

@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(菜单菜单)功能中,您只传递一个参数而不是两个参数。你在那里传递菜单类的对象。我们使用此功能覆盖默认功能,以自定义我们自己的菜单,如在菜单中添加按钮和文本,图像等。

For more reference

@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)。