动作栏没有膨胀 - android

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

我试图通过onCreateOptionsMenu方法中的一些简单迭代来扩展我的活动中的操作栏,但它不起作用。它只是显示操作栏,只显示活动的名称,没有任何项目。

这是我的xml菜单代码(ringtones.xml):

<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="activities.RingtonesActivity" >

    <item android:id="@+id/action_add"
          android:icon="@drawable/add"
          android:title="@string/action_add_ringtone"
          android:showAsAction="ifRoom" />

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:title="@string/action_settings"
        android:showAsAction="never"/>

</menu>

这是我对onCreateOptionsMenu的实现:

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.ringtones, menu);
        return true;
    }

这是动作栏的图像:

另外,我扩展了“ActionBarActivity”类。我在这做错了什么?

编辑:我刚刚注意到即使我在onCreateOptionsMenu中返回false,操作栏仍然显示为原样!到底是怎么回事?

android menu android-actionbar menuitem options
3个回答
0
投票

改变这个

android:showAsAction="never"

android:showAsAction="always"

0
投票

请更改您的代码。代替

  android:showAsAction="ifRoom"  

          and 

    android:showAsAction="never"

android:showAsAction="always" 

请在ringtones.xml中添加此行

xmlns:app="http://schemas.android.com/apk/res-auto"

如果您使用支持库作为操作栏,我会提供一个链接。请仔细阅读。 link请告诉我,如果它对您有用。


0
投票

我知道这是一个老问题,但我有这个问题,因为我忘记添加这个我的片段:

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setHasOptionsMenu(true)
}

另外,不要忘记添加:

override fun onOptionsItemSelected(item: MenuItem): Boolean {
        if (item.itemId == R.id.action_delete) {
            //Do something
            return true
        }
        return super.onOptionsItemSelected(item)
}
© www.soinside.com 2019 - 2024. All rights reserved.