【问题标题】:Action bar is not inflated - android操作栏未充气 - android
【发布时间】:2019-03-07 19:51:08
【问题描述】:

我正在尝试使用 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


    【解决方案1】:

    改变这个

    android:showAsAction="never"
    

    android:showAsAction="always"
    

    【讨论】:

      【解决方案2】:

      请更改您的代码。而不是

        android:showAsAction="ifRoom"  
      
                and 
      
          android:showAsAction="never"
      

      android:showAsAction="always" 
      

      请将此行添加到您的 ringtones.xml 中

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

      如果您正在使用操作栏的支持库,我将提供一个链接。请通过那个。 link 请告诉我,如果它适合你。

      【讨论】:

      • 我的 ringtones.xml 中已经有这一行。请看我贴在帖子里的代码
      • 请参考链接..我也发布了一个链接。
      • 我检查了您的链接,但没有找到答案。我刚刚注意到的另一件事是,即使我在 onCreateOptionsMenu 中返回 false,操作栏仍然按原样显示!发生了什么
      【解决方案3】:

      我知道这是一个老问题,但我遇到了这个问题,这是因为我忘记在我的片段中添加这个:

      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)
      }
      

      【讨论】:

        猜你喜欢
        • 2015-10-26
        • 1970-01-01
        • 2015-05-09
        • 2014-01-28
        • 2017-05-08
        • 2015-08-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多