vus520 发表于 2012-12-10 14:32:19

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

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"><Buttonandroid: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>
页: [1]
查看完整版本: Android在listview添加checkbox实现单选多选操作问题