什么是onCreateOptionsMenu(菜单菜单)

Pra*_*ant 11 android android-menu

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

Intent intent = new Intent(this, DisplayMessageActivity.class);
Run Code Online (Sandbox Code Playgroud)

Cha*_* Li 21

菜单只是参数菜单的类型.例如,您可以为名为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;
}
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请访问此链接.

至于这个,

在实例方法或构造函数中,这是对当前对象的引用 - 正在调用其方法或构造函数的对象.

例如:

public void sendMessage() {
    Intent intent = new Intent(this, DisplayMessageActivity.class);
}
Run Code Online (Sandbox Code Playgroud)

构造函数接受两个参数,Context作为其第一个参数. 表示环境数据并提供有关应用程序环境的全局信息.

有关您提供的意图示例的更多信息,请查看此信息.


Fel*_*uco 12

实现此方法的目的是menu使用您在R.menu.game_menu布局文件中定义的itens 填充de 传递.

Java的

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.game_menu, menu);
    return true;
}
Run Code Online (Sandbox Code Playgroud)

科特林

override fun onCreateOptionsMenu(menu: Menu): Boolean {
    menuInflater.inflate(R.menu.game_menu, menu)
    return true
}
Run Code Online (Sandbox Code Playgroud)

使用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);
    }
}
Run Code Online (Sandbox Code Playgroud)

科特林

override fun onOptionsItemSelected(item: MenuItem): Boolean {
    return when (item.itemId) {
        R.id.menu_item -> {
            // Action goes here
            true
        }
        else -> super.onOptionsItemSelected(item)
    }
}
Run Code Online (Sandbox Code Playgroud)