为什么菜单项不显示为动作?
问题描述:
这是XML文件:为什么菜单项不显示为动作?
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/main_main_prefs"
android:icon="@drawable/ic_tune_white_24px"
android:title="@string/menu_settings"
android:visible="true"
app:showAsAction="always" />
</menu>
更新:这是菜单通货膨胀代码。图片是真实设备中的响应。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
(new MenuInflater(this)).inflate(R.menu.menu_main,menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.main_main_prefs:
Toasty.info(this,"Prefs Was Clicked").show();
break;
}
return super.onOptionsItemSelected(item);
}
答
你必须这样
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
创建菜单,而不是
(new MenuInflater(this)).inflate(R.menu.main,menu);
return super.onCreateOptionsMenu(menu);
答
你可以尝试添加android:orderInCategory
。类似这样的:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/main_main_prefs"
android:icon="@drawable/ic_tune_white_24px"
android:title="@string/menu_settings"
android:orderInCategory="100"
android:visible="true"
app:showAsAction="always" />
</menu>
你确定你已经膨胀了正确的菜单文件吗?检查'inflater.inflate(R.menu.main,菜单)中的菜单ID;' –
是的,我非常确定。 –
你可以发布代码吗? –