Menu comments

1.  3 种menu

Option Menu, 显示在action bar上,不支持checked/radio button

Contextual Menu: 适用于listview/gridview 对其中的item操作

Contextual Menu contextual action mode : 占action bar的空间,在listview中可以一次对多个list item进行操作。

PopupMenu: 主要提供更多的菜单项,不应该更改view的内容

2. 菜单的定义在xml文件中,菜单有以下3中基本元素

  1. <menu>
  2. <item>
  3. <group>

3. Option menu

由于action bar的空间有限,可以指定在action bar的菜单项,其他未指定的都放在action overflow 中

Activity的

  1. onCreateOptionsMenu() 创建菜单
  2. onPrepareOptionsMenu()更新菜单
  3. invalidateOptionsMenu() 指示平台更新菜单
  4. onOptionsItemSelected() 处理菜单的点击事件


4. Contextual menu

建议使用contextual action bar, 把action item放在action bar上。

floating contextual menu简单,需要以下3个点

  1. 在activity中调用registerForContextMenu(View) 指示activity 会创建contextual menu
  2. onCreateContextMenu() 在需要时创建menu
  3. onContextItemSelected()处理菜单的点击事件

contextual action bar

public ActionMode startActionMode (ActionMode.Callback callback, int type)

ActionMode.Callback 的接口函数:

  • onCreateActionMode(ActionMode, Menu) once on initial creation
  • onPrepareActionMode(ActionMode, Menu) after creation and any time the ActionMode is invalidated
  • onActionItemClicked(ActionMode, MenuItem) any time a contextual action button is clicked
  • onDestroyActionMode(ActionMode) when the action mode is closed

ListView or GridView的批量数据处理

listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
AbsListView.setItemChecked(int position, boolean value)
 listView.setMultiChoiceModeListener(new MultiChoiceModeListener())
AbsListView.MultiChoiceModeListener 接口的处理函数 implements               ActionMode.Callback

  • onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked)

5. Popup Menu

    PopupMenu popup = new PopupMenu(this, (View )v);
    MenuInflater inflater = popup.getMenuInflater();
    inflater.inflate(R.menu.actions, popup.getMenu());
    popup.show();
Popup Menu listner:

interface android.widget.PopupMenu.OnMenuItemClickListener

  • onMenuItemClick(MenuItem item)


interface android.widget.PopupMenu.OnDismissListener

  • onDismiss(PopupMenu menu)

6. Menu Item可以按组处理组内的item可单选,多选

7. 自动根据intent加menuitem

需要在被加的activity支持CATEGORY_ALTERNATIVEand/or CATEGORY_SELECTED_ALTERNATIVE


微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值