ListView多选操作模式——上下文操作模式
1.什么叫上下文操作模式
2.如何进入上下文操作模式
1.ListView自身带了单选、多选模式,可通过listview.setChoiceMode来设置:
listview.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);//开启多选模式
listview.setChoiceMode(ListView.CHOICE_MODE_SINGLE);//开启单选模式
listview.setChoiceMode(ListView.CHOICE_MODE_NONE);//默认模式
listview.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);//开启多选模式
2.为ListView实现AbsListView.MultiChoiceModeListener接口的监听
public abstract void onItemCheckedSstateChanged(ActionMode mode,int position,long id,boolean checked)
//当视图在选中或撤销选中时会触发它
会有必须实现的四个方法:
public abstract boolean onCreateActionMode(ActionMode mode,Menu menu)
public abstract boolean onCreateActionMode(ActionMode mode,Menu menu)
//实例化菜单资源,显示在上下文操作栏上
public boolean onCreateActionMode(ActionMode mode,Menu menu){ MenuInflater inflater = mode.getMenuInflater(); inflater.inflate(R.menu.crime_list_context,menu);//加载视图 return true; //返回true才会被执行 }
public abstract boolean onPrepareActionMode(ActionMode mode,Menu menu)
//上下文操作栏需要刷新显示新数据时候使用
public abstract boolean onActionItemClicked(ActionMode mode,MenuItem item)
//用户选中某个菜单项的时候调用
public abstarct void onDestoryActionMode(ActionMode mode)
//ActionMode将要销毁的时候调用
3.小技巧
上下文选中的时候颜色是不变的,所以需要自己改变颜色。需要指定一个selector来改变颜色。
<selector> <item android:state_actived="true" android:drawable="#000" /> </selector>