菜单项不会显示在 Android 应用中

Menu items are not displayed in the Android app

提问人:MAGistr 提问时间:5/25/2022 更新时间:5/31/2022 访问量:624

问:

每个人 都!我是一个初学者,正在开发一个移动应用程序。 朋友们,我的菜单项没有显示。我点击菜单上的三个点。将出现一个白色窗口,窗口中没有菜单项程序代码“menu.xml”:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    app:theme="@style/Theme.MAGIC">

    <item
        android:title="@string/search"
        android:id="@+id/search_option"
        android:icon="@drawable/ic_baseline_search_24"
        app:showAsAction="ifRoom"
        app:actionViewClass="androidx.appcompat.widget.SearchView">
    </item>

    <item
        android:id="@+id/setting_app"
        android:title="@string/menu_settings"
        android:icon="@drawable/ic_settings_app" />

    <item
        android:id="@+id/about_app"
        android:title="@string/menu_about_application"
        android:icon="@drawable/ic_info_about" />
</menu>

程序代码 “themes.xml”:

<resources xmlns:tools="http://schemas.android.com/tools">
    <style name="Theme.MAGIC" parent="Theme.MaterialComponents.DayNight.NoActionBar">
        <item name="colorPrimary">@color/purple_500</item>
        <item name="colorPrimaryVariant">@color/purple_700</item>
        <item name="colorOnPrimary">@color/black</item>
        <item name="colorSecondary">@color/teal_200</item>
        <item name="colorSecondaryVariant">@color/teal_700</item>
        <item name="colorOnSecondary">@color/black</item>
        <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
    </style>
</resources>

程序代码 “MainActivity.java”

  @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuItem menuItem;
        androidx.appcompat.widget.SearchView searchView;

        getMenuInflater().inflate(R.menu.menu, menu);
        menuItem = menu.findItem(R.id.search_option);

        searchView = (SearchView) menuItem.getActionView();

        searchView.setOnQueryTextListener(this);
        return super.onCreateOptionsMenu(menu);
    }

如何显示菜单项?朋友们,帮忙解决问题! 我正在移动设备上测试该应用程序。

android-studio 菜单 android-theme android-inflate

评论

0赞 M DEV 5/26/2022
您的菜单显示正确,但对于更改主题设置,您的菜单文本也显示白色而不是黑色。查看此答案 stackoverflow.com/a/25731668/16765223
0赞 MAGistr 5/31/2022
问题解决了。

答:

0赞 shagberg 5/26/2022 #1

当我创建菜单时,在覆盖方法中,我返回而不是 .onCreateOptionsMenutruesuper

另外,您是否覆盖该方法来处理点击?您没有发布该代码。onOptionsItemSelected

以下是 Google 关于创建菜单的文档:https://developer.android.com/guide/topics/ui/menus

评论

0赞 MAGistr 5/26/2022
哦,是的,我忘了。下面是程序代码。public boolean onOptionsItemSelected(@NonNull MenuItem item) { if(item.getItemId() == R.id.about_app){ startActivity(new Intent(MainActivity.this, AboutAppActivity.class)); } else if(item.getItemId() == R.id.setting_app){ showDialogBox();
0赞 MAGistr 5/31/2022 #2

问题出在 XML 文件中。添加了以下行:。应用程序菜单如下所示:menu<item name="android:textColor">@color/purple_200</item>

完整的程序代码:

<resources xmlns:tools="http://schemas.android.com/tools">
<!-- The basic theme of the application -->
<style name="Theme.MAGIC" parent="Theme.MaterialComponents.DayNight.NoActionBar">
    <!-- another part of the code -->

    <!-- Text color, including menu text -->
    <item name="android:textColor">@color/purple_200</item>
</style>