六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 47|回复: 0

Android在listview添加checkbox实现单选多选操作问题

[复制链接]

升级  4.45%

359

主题

359

主题

359

主题

探花

Rank: 6Rank: 6

积分
1089
 楼主| 发表于 2013-1-3 16:54:41 | 显示全部楼层 |阅读模式
Android在listview添加checkbox实现单选多选操作问题

<div class="postbody"><div id="cnblogs_post_body">android根据View的不同状态更换不同的背景
http://www.eoeandroid.com/thread-198029-1-1.html
android 模仿朋友网推出的菜单效果【改进版】
http://www.eoeandroid.com/thread-198019-1-1.html
让服务器iis支持.apk文件下载的设置方法
http://www.eoeandroid.com/thread-198033-1-1.html


在 android 某些开发需求当中,有时候需要在listveiw中加入checkbox实现单选,多选操作。表面上看上去只是改变checkbox那么简单,然而实际开发中,实现起来并不是那么得心应手。尤其当listview比较多(比如屏幕最多只能显示10个item,但总共有12个item,也就是说listview的item数大于屏幕能够显示的item数)滑动屏幕的时候,由于适配器中getview()会重复使用被移除屏幕的item,所以会造成checkbox选择状态不正常的现象。自己在开发中碰到这样的问题很是苦恼,查了下资料,发现网上很少没有针对这类批量操作并没有一个完整的例子。搜了很多篇帖子才完美的实现这一常用的操作。所以在这里把这个Demo贴出来,供大家参考,希望能对大家有所帮助。
主界面的布局main.xml 这个就不多说什么
<div class="cnblogs_code"><?xml version="1.0" encoding="utf-8"?>  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="vertical" > <LinearLayout android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="wrap_content">  <TextView android:id="@+id/tv"android:layout_width="fill_parent"android:layout_height="50dip"android:textColor="#FCFCFC"android:textSize="11pt"android:gravity="center_vertical"android:layout_marginLeft="10dip"/>  <ListView android:id="@+id/lv"android:layout_width="fill_parent"android:layout_height="381dip"android:cacheColorHint ="#00000000"></ListView>  </LinearLayout>  <RelativeLayout android:layout_width="fill_parent"android:layout_height="53dip"android:orientation="horizontal">  <Button  android:id="@+id/selectall"android:layout_width="80dip"android:layout_height="50dip"android:layout_marginLeft="20dip"android:text="全选"android:gravity="center" />  <Button android:id="@+id/inverseselect"android:layout_width="80dip"android:layout_height="50dip"android:layout_marginLeft="118dip"android:text="反选"android:gravity="center"/>  <Button android:id="@+id/cancel"android:layout_width="80dip"android:layout_height="50dip"android:layout_marginLeft="213dip"android:text="取消已选"android:gravity="center" /> </RelativeLayout> </LinearLayout>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表