我创建了一个菜单,该菜单在点击设备上的菜单按钮时激活,但它显示为列表
我的res / menu / menu.xml代码如下:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menuRefresh"
android:icon="@drawable/ic_menu_refresh"
android:title="Refresh"/>
<item android:id="@+id/menuAbout"
android:icon="@drawable/ic_menu_info_details"
android:title="About"/>
</menu>
在我的主要活动中我有:
//Initiate Menu XMl file
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.menu, menu);
return true;
}
/**
* Even handling for individual menu items selected
* Identity single menu item by its id
*/
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch(item.getItemId()){
case R.id.menuRefresh:
Toast.makeText(MainActivity.this, "Refresh Selected", Toast.LENGTH_SHORT).show();
return true;
case R.id.menuAbout:
Toast.makeText(MainActivity.this, "About Selected", Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
如果我从列表中选择一个项目,我会按预期收到通知。
如何使菜单看起来像android dev site上的选项菜单?
答案 0 :(得分:2)
这就是选项菜单在新设备上的样子,列表。如果您希望您的选项成为顶栏(称为操作栏)的一部分,请将android:showAsAction
添加到您的xml中。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menuRefresh"
android:icon="@drawable/ic_menu_refresh"
android:title="Refresh"
android:showAsAction = "always"/>
<item android:id="@+id/menuAbout"
android:icon="@drawable/ic_menu_info_details"
android:title="About"
android:showAsAction = "always"/>
</menu>
出于演示目的,我选择的属性为"always"
,但您有more options:
"ifRoom"
"never"
"withText"
"always"
"collapseActionView"
答案 1 :(得分:1)
即使在新设备中,您也可以将主题设置为旧主题,菜单将显示在旧的6项目表格布局中:
<style name="AppBaseTheme" parent="android:Theme">