1.OptionMenu (系统菜单栏)
(1)菜单栏显示:
@Override public boolean onCreateOptionsMenu(Menu menu) { //泵菜单内容 getMenuInflater().inflate(R.menu.main, menu); return true; }
(2)menu里面的属性:
<menu></menu>是一个菜单栏<item></item>菜单栏里面一个栏目
item属性: id: @+id/ showAsAction :never(不可见)always(可见)等等...
一个栏目里放子菜单
1.直接放<item> <menu> <item></item> · · · <item></item> </menu> </item>
2.放一个group<item> <menu> <group> <item></item> · · · <item></item> <group> </menu> </item>
(3)监听
@Override public boolean onOptionsItemSelected(MenuItem item) { //得到点击栏目的id int id = item.getItemId(); //处理 switch (id) { case R.id.xxx: //响应的事件 break; case R.id.xxx: //响应的事件 break; } return super.onOptionsItemSelected(item); }
2.ContextMenu (上下文菜单栏)
(1)创建上下文菜单
@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; menu.setHeaderIcon(R.drawable.ic_launcher); menu.setHeaderTitle(list.get(info.position)); menu.add(0, 1, 1, "删除"); //第一个参数为所在的group的id 第二个参数为id menu.add(0, 2, 2, "修改"); menu.add(0, 3, 3, "查看"); }
(2)注册
在onCreate中,给需要添加上下文菜单的View注册。
registerForContextMenu(View v);
v中用来适配器,监听时,每处理一次,就要调notifyDataSetChanged()。
(3)上下文菜单监听
@Override public boolean onContextItemSelected(MenuItem item) { //得到点击的的位置 AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); final int tion = info.position; //根据id来处理 switch (item.getItemId()) { case 1: //处理 break; case 2: //处理 break; case 3: //处理 break; } return super.onContextItemSelected(item); }
![]()