上下文菜单与上下文操作模式
1、创建上下文菜单时,Fragment的回调方法类似于用于选项菜单的回调方法,要实例化生
成一个上下文菜单,可使用以下方法:
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
响应用户的上下文菜单选择,可实现以下Fragment方法:
public boolean onContextItemSelected(MenuItem item)
2、默认情况下,长按视图不会触发上下文菜单的创建。要触发菜单的创建,必须调用以下Fragment方法为浮动上下文菜单登记一个视图:
public void registerForContextMenu(View view)该方法传入触发上下文菜单的视图。
3、为ListView设置一个实现AbsLIstView.MultiChoiceModeListener接口的监听器。该接口包含以下回调方法,视图在选中或者撤销选中时会触发它:
public abstract void onItemCheckStateChange(ActionMode mode, int position, long id, boolean checked)MultiChoiceModeListener接口实现了另一个接口,即ActionMode.Callback。用户在屏幕 进入上下文操作模式时,会创建一个ActionMode类实例。随后在生命周期内, ActionMode.Callback接口的回调方法会在不同时间点被调用。以下为 ActionMode.Callback接口中必须实现的四个方法:
public abstract boolean onCreateActioMode(ActionMode mode, Menu menu)
在ActionMode对象创建后调用。也是实例化上下文菜单资源,并显示在上下文操作栏上的 任务完成的地方。
public abstract boolean onPrepareActionMode(ActionMode mode, Menu menu)
在onCreateActionMode(。。。)方法之后,以及当前上下文操作栏需要刷新数据时调用 。
public abstract boolean onActionItemClicked(ActionMode mode, MenuItem item)
在用户选中某个菜单项操作时调用。是响应上下文菜单项操作的地方。public abstract void DestroyActionMode(ActionMode mode)
在用户退出上下文操作模式或所选菜单项操作已被响应,从而导致ActionMode对象将要销 毁时调用。默认的实现会导致已选视图被反选。这里,也可完成在上下文操作模式下,响 应菜单项操作而引发的相应fragment更新。