我是Android编程新手,想尝试在Android应用程序中实现选项菜单,所以我首先创建一个测试应用程序并尝试在那里创建一个选项菜单,我编写了代码,一切看起来都很好,没有错误并执行在 AVD 中,但是当应用程序打开时,找不到选项菜单。
我看了几个教程,针对同一问题经历了很多 stackoverflow 线程,实现了这些更改仍然没有运气 - 仍然没有选项菜单。
MainActivity.java 文件是:
package com.example.test;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.options_menu, menu);
return true;
}
}
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">
<TextView
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/options_menu_example"
android:textSize="24sp"
android:layout_centerInParent="true" />
</RelativeLayout>
选项菜单.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_option_1"
android:title="Option 1"
/>
<item
android:id="@+id/menu_option_2"
android:title="Option 2"/>
</menu>
执行上述代码后的应用程序屏幕截图(使用带有 API 34 的 PIXEL 3 AVD):
我将非常感谢任何帮助解决这个问题并找出代码有问题的人,这样我就可以注意到这一点,而不会再犯同样的错误。谢谢你
我检查了所有文件是否位于正确的位置,例如 options_menu.xml 文件是否位于 res 的菜单目录中,是否有任何拼写错误和大量可能导致问题的小事情,但一切看起来都很好仍然看不到应用程序中的选项菜单。
要真正显示菜单,您的活动中需要有一个工具栏
这可能有两个原因
<style name="AppTheme" parent="Theme.AppCompat.Light.**NoActionBar**">
因此您可以使用已有工具栏的活动主题
或
您可以设置默认内置工具栏的主题,或者在活动的 XML 布局中显式添加工具栏
工具栏 xml 可能是这样的
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
</androidx.appcompat.widget.Toolbar>
然后您可以将其添加到您的活动中
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
参考this答案以获得一些详细的想法