温馨提示×

android oncreateoptionsmenu 怎么实现

小樊
81
2024-12-06 01:08:56
栏目: 编程语言

在Android中,onCreateOptionsMenu方法用于初始化Activity的选项菜单。要在Activity中实现onCreateOptionsMenu,请按照以下步骤操作:

  1. 首先,确保您的Activity已经继承了AppCompatActivity或者Activity。如果您使用的是AppCompatActivity,那么需要在项目的build.gradle文件中添加AppCompat库的依赖。

  2. 在Activity的XML布局文件中(例如:activity_main.xml),添加一个菜单资源文件。在res文件夹下创建一个名为menu的文件夹,然后在menu文件夹中创建一个XML文件(例如:menu_main.xml)。在这个文件中,定义您想要在选项菜单中显示的菜单项。例如:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/action_settings"
        android:title="设置"
        android:orderInCategory="100"
        android:showAsAction="never" />
</menu>
  1. 在Activity的Java或Kotlin文件中(例如:MainActivity.java或MainActivity.kt),重写onCreateOptionsMenu方法。在这个方法中,使用MenuInflater将XML菜单资源文件展开并添加到Activity的选项菜单中。例如:

Java版本:

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.MenuInflater;
import android.os.Bundle;
import android.view.Menu;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        // Inflate the menu; this adds items to the action bar if it is present.
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_main, menu);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_main, menu);
        return true;
    }
}

Kotlin版本:

import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import androidx.core.view.MenuInflater
import android.os.Bundle
import android.view.Menu

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val toolbar: Toolbar = findViewById(R.id.toolbar)
        setSupportActionBar(toolbar)

        // Inflate the menu; this adds items to the action bar if it is present.
        val inflater: MenuInflater = menuInflater
        inflater.inflate(R.menu.menu_main, menu)
    }

    override fun onCreateOptionsMenu(menu: Menu): Boolean {
        // Inflate the menu; this adds items to the action bar if it is present.
        val inflater: MenuInflater = menuInflater
        inflater.inflate(R.menu.menu_main, menu)
        return true
    }
}

现在,当您运行应用程序并点击右上角的菜单按钮时,应该会看到在menu_main.xml中定义的菜单项。您可以根据需要添加更多的菜单项和子菜单项。

0