Android菜单

 android提供了三种菜单类型,分别为options menu,context menu,sub menu。options menu就是通过按home键来显示,context menu需要在view上按上2s后显示。两种menu都有可以加入子菜单,子菜单不能再不能嵌套子菜单。

options menu最多只能在屏幕最下面显示6个菜单选项,成为icon menu,icon menu不能有checkable选项。多余6的会以more icon menu来调出,成为expanded menu。options menu通过activity的onCreateOptionsMenu来生成,只会在menu第一次生成时调用。任何想改变options menu的想法只能在onPrepareOptionsMenu来实现,这个函数会在menu显示前调用。onOptionsItemSelected 处理选中的菜单项。

context menu是跟某个具体的view绑定在一起,在activity调用registerForContextMenu来为某个view注册context menu。context menu在显示前都会调用onCreateContextMenu来生成menu。onContextItemSelected选中的菜单项。

android还提供了对菜单项进行分组的功能,可以把相似功能的菜单项分成同一个组,这样就可以通过调用setGroupCheckable,setGroupEnabled,setGroupVisible来设置菜单属性,而无须单独设置。

响应菜单项单击事件

3种方式

menuOptionsSelected

menuItemSelected

onMenuItemClick

动态添加、修改和删除菜单项

菜单项的增删改查

增:add:添加菜单项

 addSubMenu:表示向这个菜单项中添加子菜单项

删:removeItem:删除指定的那个菜单项

removeGroup:删除指定的某组菜单项

改:

选项菜单:onPrepareOptionsMenu()——> MenuItem->setXXX()

上下文菜单:onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {} 方法在每次调用上下文菜单时都会被调用一次

子菜单的创建

Xml创建

Menu.getMenuInflater ().inflater(R.menu.submenu, submenu);

 

动态创建

Menu submenu = Menu.addSubMenu(x, x, x, x)

submenu.add()

submenu.add()

main_menu.addSubMenu(x,x,x,x);

带单选或复选的子菜单

SubMenu submenu = menu.addSubMenu(组号,添加的菜单项 , 在该组中的放置位置,显示的菜单名);

submenu.setGroupCheckable(组号,是否可选,是否为单选);

sb.getItem(0).setCheckable(设置是否可选);

sb.getItem(0).setChecked(设置是否默认选中);

AlertDialog的常见方法

创建AlertDialog对象的方法:

创建一个AlertDialog的Builder对象,利用该Builder对象可使用多个方法,分别用于设定对话框的标题,信息,按钮等

AlertDialog.Builder builder = new Builder(类名);

builder.setTitle(标题):设置对话框的标题

builder.setMessage(对话框信息):设置对话框显示信息

setItems(int itemsld,DialogInterface.OnclickListener listener):创建普通列表对话框

setMultiChoiceItems(CharSequence[] items,Boolean[] checkedItems,DialogInterface.OnMulti ChoiceClickListener listener):创建多选列表对话框

setSingleChoiceItems(CharSequence[] items,int checkedItem,DialogInterface.OnMulti ChoiceClickListener listener):创建单选列表对话框

setAdapter(ListAdapter adapter,DialogInterface.OnClickListener listener):创建根据ListAdapter提供列表项的列表对话框

builder.setPositiveButton(按钮名, 监听器及其方法()):创建AlertDialog的按钮

AlertDialog的监听器方法

public void onClick(DialogInterface dialog, int which)该Dialog的监听器方法,监听所有的dialog对象,并且对它们进行排号

切记:

使用dialog时一定要记得调用builder.create().show();方法,否则,该AlertDialog会不显示

 

一个AlertDialog的实例方法:

AlertDialog.Builder builder = new Builder(RActivity.this);

 

     builder.setTitle("导入/导出联系人");

     builder.setItems(new String[] { sub5_01, sub5_02, sub5_03, sub5_04 },

         new OnClickListener() {

 

           public void onClick(DialogInterface dialog, int which) {

 

            }

 

         });

 

     // 注册使用对话框里的监听器

     builder.setNegativeButton("取消",

         new android.content.DialogInterface.OnClickListener() {

 

            @Override

           public void onClick(DialogInterface dialog, int which) {

              // TODO Auto-generated method stub

              dialog.dismiss();

            }

         });

     // 注册显示系统对话框

     builder.create().show();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值