动作栏没有膨胀 - android

时间:2015-01-14 09:27:44

标签: android menu android-actionbar menuitem options

我试图通过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;
    }

以下是操作栏的图片:

enter image description here

另外,我扩展了&#34; ActionBarActivity&#34;类。 我在这里做错了什么?

编辑:我刚刚注意到即使我在onCreateOptionsMenu中返回false,操作栏仍会显示为原样!发生了什么事?

3 个答案:

答案 0 :(得分:0)

更改此

android:showAsAction="never"

android:showAsAction="always"

答案 1 :(得分:0)

请更改您的代码。而不是

  android:showAsAction="ifRoom"  

          and 

    android:showAsAction="never"

android:showAsAction="always" 

请在ringtones.xml中添加此行

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

如果您使用支持库作为操作栏,我会添加一个链接。请仔细阅读。 link请告诉我,如果适用于您。

答案 2 :(得分: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)
}