0、在res目录下创建【menu】文件夹:
然后再在该文件中按提示创建【menu】文件
1、menu的嵌套和层级结构:
<menu
<group
<item
<menu....
<item
<menu....
item 的4个重要属性:
id:
icon:
title:
showAsAction:显示在应用栏
2、菜单在Activity或者Fragment中一般使用:
1、重写onCreateOptionsMenu函数,引用menu文件填充:
这里,可以用
menu.add
函数动态添加item
并可以用findItem
函数检索获取,修改其属性。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflater.inflate(R.menu.game_menu, menu);
return true;
}
2、重写onOptionsItemsSelected函数,处理item的点击事件:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.new_game:
newGame();
return true;//return true表示正常结束
case R.id.help:
showHelp();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
3、重写onPrepareOptionsmenu函数,动态添加删除item:
方法同上,menu.add()…
3、悬浮上下文菜单:
1、调用registerForContextMenu(R.id.根布局view),向Activity中注册。一般传入List View、GridView。
2、重写onCreateContextMenu函数,实现长按时填充菜单。
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
}
3、重写onContextItemSelected函数,实现item的点击。
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case R.id.edit:
editNote(info.id);
return true;
case R.id.delete:
deleteNote(info.id);
return true;
default:
return super.onContextItemSelected(item);
}
}
4、group的重要属性:
android:checkableBehavior=""
1、single:单选按钮
2、all:全选按钮
3、none:无法选中
item可以用checked属性。