关于全选的问题,因为第一篇文章已经讨论了选中与取消的实现,现在介绍全选的实现。
同样是第二种实现方法:
ListView有一个setItemChecked方法,现在这个方法用得上了。
你的数据列表是:private List mList = new ArrayList();
完成的布局文件是:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent" android:layout_height="wrap_content">
<Button
android:id="@+id/check_all" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:text="check all"
android:layout_weight="1"/>
<Button
android:id="@+id/un_check_all" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:text="uncheck all"
android:layout_weight="1"/>
<ListView
android:id="@+id/"
android:cacheColorHint="#00000000" android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
加了两个按钮,进行全选与了取消全选。
checkAllBtn = (Button) findViewById(R.id.check_all);
unCheckAllBtn = (Button) findViewById(R.id.un_check_all);
checkAllBtn.setOnClickListener(clickListener);
unCheckAllBtn.setOnClickListener(clickListener);
public void onClick(View view) {
switch (view.getId()) {
case R.id.check_all:
checkAll();
break;
case R.id.un_check_all:
unCheckAll();
break;
default:
break;
}
}
private ListView mListView;
//全选:
private void checkAll() {
for (int i = 0; i < mList.size(); i++) {
if (!checkPosList.contains(new Integer(i))) {这里对已经添加选中状态的就不处理了,
checkPosList.add(new Integer(i)); 需要添加的是Object不能是int。
mListView.setItemChecked(i, true);利用了ListView的这个方法,就可以让你的ListView出现选中状态了,如果这句删除了,虽然checkPosList包含了所有的选中项,视图中却看不到,可以试试看效果。
}
}
contactListAdapter.notifyDataSetChanged();
}
取消全选:
private void unCheckAll() {
for (int i = 0; i < mList.size(); i++) {
mListView.setItemChecked(i, false);将所有的选中状态取消。
}
checkPosList.clear();
contactListAdapter.notifyDataSetChanged();
}
到此,结束。图片效果:
- 大小: 39.6 KB
分享到:
相关推荐
CheckBox+ListView混合使用,并缓存CheckBox+ListView混合使用,并缓存CheckBox+ListView混合使用,并缓存CheckBox+ListView混合使用,并缓存CheckBox+ListView混合使用,并缓存CheckBox+ListView混合使用,并缓存...
2、选择其中的checkbox,当滚动ListView的时候,会出现一些Checkbox选择错位的现象, 原因:为记住Checkbox的选择状态 解决方案:当选择Checkbox的时候,记下其状态,然后在getView方法中进行设置
C#完美可编辑多列含CheckBox的ListView
关键避免事件冲突,和复用错误. listview中添加CheckBox的完美实现
在ListView中添加CheckBox,实现多选条目
知识点:1、解决listView滚动时checkBox的选择状态会发生变化(絮乱);2、ListView的Item长按,点击时间并存,实现同一UI控件多需求响应各类事件;3、点击ListViewItem选中响应Item里的CheckBox;4、计算选中的项数...
WPF中ListView添加CheckBox列
在delphi中使用listview控件,启用checkbox选项后,默认是多选,此示例实现单选功能,在Delphi7下测试通过。
Android开发:实现带图片和checkbox的listview
带CheckBox的listView 支持多选,全选,反选, 的功能,网上有好多遇见的这种需求做起来有bug,在这里都完美解决了
一个简单实现自定义带CheckBox的ListView。
这是我自己写的android listview里面使用checkbox的demo
在listview中处理checkbox
带checkbox的listview
带checkbox的listview的特殊效果,实现多选功能,
每次ListView只有一个条目的CheckBox可以被选中,而且没有CheckBox复用图片错位的问题。
当用LISTVIEW显示大量数据时,经常会发生卡顿,而使用虚拟模式则可以很好地解决问题。本文用简明的方式和代码,让初学者能够迅速使用这种方式。
使用ListView跟CheckBox实现listView内容的单选,思路大概是使用一个list用来记录选择位置,每次选择新位置之后重新设置list值,刷新下listview
获取c# ListView CheckBox 索引值
ListView CheckBox 全选 取消 删除