我试图通过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;
}
以下是操作栏的图片:
另外,我扩展了&#34; ActionBarActivity&#34;类。 我在这里做错了什么?
编辑:我刚刚注意到即使我在onCreateOptionsMenu中返回false,操作栏仍会显示为原样!发生了什么事?
答案 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)
}