菜单的设计
android中的菜单有两种,一种是通过menu键激活的,叫Option Menu;另一种是当用户长按一个元素时激活,叫Context Menu。
1. Options Menu
Options Menu用于当前的Activity,它包括两种菜单项:
1) icon menu:options menu在屏幕底部最多显示6个菜单选项,这些菜单项称为icon menu,icon menu只支持文字(title)以及icon,可以设置快捷键,不支持checkbox以及radio控件,所以不能设置checkable选项。
2) expanded menu:options menu多于6个菜单选项时会以"more"icon menu来显示,它不支持icon,其它的特性都和icon menu一样。
在Activity里面,一般通过以下方法来使用Options Menu:
1) onCreateOptionsMenu(Menu menu)创建Options Menu,这个方法只会在menu第一次显示时调用。
2) onPrepareOptionsMenu(Menu menu)更新改ptions Menu的类容这个方法会在menu每次显示时调用。
3) onOptionsItemSelelcted(MenuItem item)处理选项菜单。
2. Context Menu
Context Menu用于view,跟某个具体的view绑定在一起。该类型的菜单不支持icon和快捷键。,一般
在Activity里面通过以下方法来使用Context Menu:
1) registerForContextMenu(View view)为某view注册Context Menu,一般在Activity的onCreate里面调用。
2) onCreateContextMenu(ContextMenu menu,View v,ContextMenu.Context MenuInfo menuInfo)创建context menu,
和Options Menu不同,context menu每次显示时都会调用这个方法。
3) onContextItemSelected(MenuItem item)处理选中的菜单项。
下面是菜单选项的一个例子:
public boolean onCreateOptionsMenu(Menu menu) {
// public MenuItem add(int groupId分组号,int itemId ID号:判断谁点击了,int order 序列号,CharSquence title 标题);
super.onCreateOptionsMenu(menu);
MenuItem item=menu.add(1,1,1,"菜单1");
item.setIcon(R.drawable.ic_launcher);
menu.add(1,2,2,"菜单2");
MenuItem item2=menu.add(1,3,3,"菜单3");
item2.setIcon(R.drawable.ic_launcher);
menu.add(1,4,4,"菜单4");
MenuItem item5=menu.add(1,5,5,"菜单5");
item5.setIcon(R.drawable.ic_launcher);
menu.add(1,6,6,"菜单6");
menu.add(1,7,7,"菜单7");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
super.onOptionsItemSelected(item);
int id=item.getItemId();
TextView t1=(TextView) findViewById(R.id.t1);
t1.setText(id+"");
return super.onOptionsItemSelected(item);
}
}
运行结果:

图1

图2

图3
当点击MENU时,会弹出如图1所示的菜单,点击更多时弹出图2所示菜单,点击每一个菜单项时,在界面显示所点击项的序号,如图3所示。
总结:对于这一个程序我大部分都是老师上课讲的,让后我自己将其中的部分条件修改了一下。在实现的过程中也出现了一些问题,在添加子菜单项时,
后面的变量都没有修改,总没有预期的结果,最后找了很久才发现。所以我觉得在以后编写的过程中一定要仔细一点,争取犯更少的错误。
浙公网安备 33010602011771号