listview自带的单选和多选

    xiaoxiao2023-03-25  3

    1、ListView本身带有单选和多选功能,也就是说在单选模式下,它能够记住当前选中的唯一的列表项;在多选模式下,它能够记住目前选取的所有的列表项。 2、这种选择模式共有4种CHOICE_MODE_NONE,CHOICE_MODE_SINGLE,CHOICE_MODE_MULTIPLE,CHOICE_MODE_MULTIPLE_MODAL。 3、CHOICE_MODE_NONE,这是ListView默认的选择模式,当使用者点击列表项后,不会将任何点击的列表项当成被选择上的列表项。 lv.setChoiceMode(ListView.CHOICE_MODE_NONE); 4、CHOICE_MODE_SINGLE,使用这个选项模式,当使用者点击列表项后,会将最后一次点击的列表项当成被选择上的列表项。 lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE); // 得到一个键值对,里面只会记录 SparseBooleanArray checkedItems = lv.getCheckedItemPositions();  5、CHOICE_MODE_MULTIPLE,使用这个选项模式,当使用者点击列表项后,会将所有点击的列表项当成被选择上的列表项。 lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); // 得到一个个键值对,里面会记录 SparseBooleanArray checkedItems = lv.getCheckedItemPositions();  6、CHOICE_MODE_MULTIPLE_MODAL,在CHOICE_MODE_MULTIPLE_MODAL模式中,用户必须通过长按任意一个列表项,进入多选模式,否则不能进行多选。 private class MyMultiChoiceModeListener implements ListView.MultiChoiceModeListener { @Override public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) { //添加列表项被点击后的响应 } @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { //这里返回true return true; } @Override public boolean onPrepareActionMode(ActionMode mode, Menu menu) { //这里返回true return true; } @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { //这里返回true return true; } @Override public void onDestroyActionMode(ActionMode mode) { } } lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); ListView.MultiChoiceModeListener callback = new MyMultiChoiceModeListener(); lv.setMultiChoiceModeListener(callback);
    转载请注明原文地址: https://ju.6miu.com/read-1203954.html
    最新回复(0)