运行应用程序时不显示选项菜单 + xml 中不显示图标

问题描述 投票:0回答:1

我试图让我的应用程序在顶部显示 3 点菜单按钮,这将导致一个按钮,单击该按钮将显示 menu.xml 中描述的选项(是的,我在带有菜单资源文件的菜单文件夹中创建了它)

主要活动:

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

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater mi = getMenuInflater();
        mi.inflate(R.menu.menu, menu);
        //getMenuInflater().inflate(R.menu.menu, menu);
        return super.onCreateOptionsMenu(menu);
        //I have also tried return true
    }

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {

        switch(item.getItemId()){
            case R.id.itemOne:
                Toast.makeText(this, "settings", Toast.LENGTH_SHORT).show();
                return true;

            case R.id.itemTwo:
                startActivity(new Intent(MainActivity.this, SettingsActivity.class));

            default:
                return super.onOptionsItemSelected(item);
        }

    }

菜单.xml: 我尝试过使用顶部和不使用顶部的部件,但无论哪种方式都不起作用 而且它也不显示图标

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"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">

    <item
        android:id="@+id/itemOne"
        android:icon="@drawable/baseline_settings_24"
        android:title="Settings" />
    <item
        android:id="@+id/itemTwo"
        android:icon="@drawable/baseline_logout_24"
        android:title="Logout" />
</menu>

我已经诚实地尝试了这个世界上的所有内容,我已经浏览了所有以前有些相关的线程,它们都给出了我在 menu.xml 和 MainActivity 中实现的答案,我只是不明白为什么它不起作用或者我应该搜索什么做这样的事情。

谢谢!!!

java android xml
1个回答
0
投票

经过一番研究,我要感谢 dominicoder 的初步回答,所以对于任何遇到同样问题的人,这就是你应该做的来解决它: 首先进入 AndroidManifest 并更改 android 主题 -

android:theme="@style/Theme.AppCompat.Light.NoActionBar"
然后在 MainActivity 中将它们放入 onCreate 中:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
    setSupportActionBar(myToolbar);
 }

要显示您放入 menu.xml 中的图标,您需要将一行粘贴到 onCreateOptionsMenu 中,当您收到错误抑制它时,应该看起来像这样和结尾:

@SuppressLint("RestrictedApi")
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater mi = getMenuInflater();
    mi.inflate(R.menu.menu, menu);

    if (menu instanceof MenuBuilder) {
        ((MenuBuilder) menu).setOptionalIconsVisible(true);
    }
    return super.onCreateOptionsMenu(menu);
}

希望有帮助)

© www.soinside.com 2019 - 2024. All rights reserved.