菜单的设计

       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所示。

 

总结:对于这一个程序我大部分都是老师上课讲的,让后我自己将其中的部分条件修改了一下。在实现的过程中也出现了一些问题,在添加子菜单项时,

        后面的变量都没有修改,总没有预期的结果,最后找了很久才发现。所以我觉得在以后编写的过程中一定要仔细一点,争取犯更少的错误。

 

posted on 2013-04-13 10:36  Iitb  阅读(161)  评论(0)    收藏  举报

导航