android菜单的使用
16lz
2022-06-05
Android里面也可用XML定义菜单资源,菜单分两种,一种是OptionMenu(点系统"Menu"键出来),另一种是ContextMenu必须长按才能出来;
optionMenu菜单的使用
1,创建选项菜单; onCreateOptionsMenu(Menu menu)
//创建选项菜单的方法@Overridepublic boolean onCreateOptionsMenu(Menu menu) {//menu.add(groupId, itemId, order, title) //goupid 菜单项所在组的标示符//itemid 唯一表示的ID//order 菜单栏项的显示顺序//title 菜单项相似的文本MenuItem menu1 = menu.add(0, 0, 0, "item1");menu1.setAlphabeticShortcut('a');//分配快捷键的方法menu1.setIcon(R.drawable.ic_launcher);//设置图标MenuItem menu2 = menu.add(0, 1, 1, "item2");menu1.setAlphabeticShortcut('b');//分配快捷键的方法menu1.setIcon(R.drawable.ic_launcher);//设置图标MenuItem menu3 = menu.add(0, 2, 2, "item3");menu1.setAlphabeticShortcut('c');//分配快捷键的方法menu1.setIcon(R.drawable.ic_launcher);//设置图标//使用简单方式创建三个菜单栏menu.add(0,4,4,"item4");menu.add(0,5,5,"item5");menu.add(0,6,6,"item6");return true;}
2,添加选项菜单的监听器onOptionsItemSelected(MenuItem item);
@Override//选项菜单的监听器public boolean onOptionsItemSelected(MenuItem item) {//MenuChoice方法接收Menuite方法的一个参数,并检查其ID确定被选中的菜单项int id = item.getItemId();switch (id) {case 0:Toast.makeText(this, "选中item1", 1000).show();break;case 1:Toast.makeText(this, "选中item2", 1000).show();break;case 2:Toast.makeText(this, "选中item3", 1000).show();break;case 4:Toast.makeText(this, "选中item4", 1000).show();break;case 5:Toast.makeText(this, "选中item5", 1000).show();break;case 6:Toast.makeText(this, "选中item6", 1000).show();break;}return false;}
ContextMenu菜单的使用;
上下文菜单的使用必须是长按才会出来
1,定义布局上下文菜单的布局文件menu_contextemnu.xml
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/rename" android:title="修改名字" /> <item android:id="@+id/dele" android:title="删除" /> <item android:id="@+id/open" android:title="打开" /> <item android:id="@+id/detailed" android:title="详细" /></menu>
2,定义主配置文件 acticity_main.xml
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onclick" android:text="上下文菜单" />
3,java类的使用
//上下文菜单的使用public class MainActivity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);this.setContentView(R.layout.activity_main);//获得按钮Button btn=(Button)this.findViewById(R.id.btn);btn.setOnCreateContextMenuListener(this);//上下文菜单的使用必须要先注册组件this.registerForContextMenu(btn);} public void onclick(View v){ }@Override//创建上下文菜单public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {super.onCreateContextMenu(menu, v, menuInfo); getMenuInflater().inflate(R.layout.menu_contextemnu, menu); }@Override//创建上下文监听器public boolean onContextItemSelected(MenuItem item) {int id = item.getItemId();switch (id) {case R.id.rename:Toast.makeText(this, "重命名", 1000).show();break;case R.id.dele:Toast.makeText(this, "删除", 1000).show();break;case R.id.detailed:Toast.makeText(this, "详细", 1000).show();break;case R.id.open:Toast.makeText(this, "打开", 1000).show();break;}return false;}}
3, 选项菜单和上下文菜单监听器;
onMenuItemSelected可以同时使用在有少量的选项菜单和上下文的情况,下面一个方法就搞定, 如果出现上下文监听器(onContextItemSelected),选项监听器(onOptionsItemSelected) ,onMenuItemSelected 则只会执行onMenuItemSelected 监听器
@Override // 菜单被选中的时候会执行 public boolean onMenuItemSelected(int featureId, MenuItem item) { // TODO Auto-generated method stub return true; }
更多相关文章
- Android基本控件和事件以及消息总结
- 淘宝(阿里百川)手机客户端开发日记第二篇 android首页之顶部轮播
- Android之菜单总结
- 新手android 开发 错误集锦(持续更新中)
- android menu菜单
- Android侧滑控件之DrawerLayout的使用
- 【新提醒】N820 N821 android 4.2 V1.1版 - 大V综合交流区 - 360
- 关于android的Menu理解
- android学习笔记36:消息提示