选项菜单,的实现通常有两种方式,一种是基于xml资源文件的实现,另一种是通过java代码实现。通常情况下,推荐使用基于xml 资源文件的实现。但加载的菜单项较多时,Android会自动将不能完全显示的菜单放置在more扩展选项菜单中。需要注意的是,在more扩展菜单中, 无法显示图标。
xml:list_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_item"
android:title="@string/hello"
android:icon="@drawable/icon"/>
</menu>
//生成资源
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.list_menu, menu);
return super.onCreateOptionsMenu(menu);
}
//对menu进行处理:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item:
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
//如果希望在菜单显示之前做些处理的话,需要关注下面这个方法。需要注意的是,如果希望显示菜单内容,该方法必须返回true,否则返回false
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
// return super.onPrepareOptionsMenu(menu);
return true;
}