CheckedTextView + ListView

可以简单地实现单选和多选列表;

Android实现列表单选和多选,ListView+CheckedTextView_第1张图片
右侧的选框图标,可以通过 checkMark 来自定义图标

android:checkMark="@drawable/custom_single_bg"
Android实现列表单选和多选,ListView+CheckedTextView_第2张图片
drawable文件如下:

<?xml version="1.0" encoding="utf-8"?>                

也可以在Java代码中动态设置:setCheckMarkDrawable
可以查看CheckedTextView 的源代码了解更多方法:
Android实现列表单选和多选,ListView+CheckedTextView_第3张图片
使用ListView可以设置选择模式,
setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE);//多选
ListView的四种选择模式:
Android实现列表单选和多选,ListView+CheckedTextView_第4张图片
其中 CHOICE_MODE_NONE 是普通模式, CHOICE_MODE_SINGLE 是单选模式,不常用, CHOICE_MODE_MULTIPLECHOICE_MODE_MULTIPLE_MODAL 都是多选模式

ListView多选操作模式详解CHOICE_MODE_MULTIPLE与CHOICE_MODE_MULTIPLE_MODAL
CHOICE_MODE_MULTIPLE_MODAL和CHOICE_MODE_MULTIPLE恰恰相反,他是对普通点击操作和多选操作是排斥的,一旦有一个item被选中,即进入到多选状态,item的onclick事件被屏蔽。这种排斥性也是他比CHOICE_MODE_MULTIPLE多了个MODAL的原因。

ListView的 getCheckedItemPositions() 方法,其返回结果是一个 SparseBooleanArray 对象,里面包括了每个被选中项的index,以及其选中状态。
setItemChecked(int position, boolean value) 设置某一项的选中状态;
clearChoices() 清除所有选中状态;
ListView.MultiChoiceModeListener接口的方法,这是多选模式下特有的方法,监听列表项的选中状态变化,

@Overridepublic void onItemCheckedStateChanged(ActionMode mode,        int position, long id, boolean checked) {    ....}

更多相关文章

  1. 程序的组件模式
  2. android耳机状态的检测
  3. Android 实现变色状态栏
  4. Android使用系统Intent实现分享功能及将应用加入分享列表
  5. Android VR Player(全景视频播放器) [6]:视频列表的实现-本地视频
  6. Android中MVP模式

随机推荐

  1. JavaScript 通过native.js 调用Android原
  2. android 反汇编,修改,重新打包
  3. android常用控件应用之文本框(TextView)特
  4. Android(安卓)Studio运行程序出现Session
  5. Android Gradle manifestPlaceholders 占
  6. Android Studio 默认keystore 以及自定义
  7. Android API 中文 (55) ―― ListAdapter
  8. android中ActionBar以及其与Action Butto
  9. Android中http请求(C# MVC接收)
  10. [Android] 获取Android设备的唯一识别码|