加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱故事小小网_铜陵站长网 (http://www.0562zz.com/)- 视频终端、云渲染、应用安全、数据安全、安全管理!
当前位置: 首页 > 教程 > 正文

完美处理Android在listview添加checkbox实现单选多选操作问题

发布时间:2021-12-18 15:30:49 所属栏目:教程 来源:互联网
导读:在Android某些开发需求当中,有时候需要在listveiw中加入checkbox实现单选,多选操作。表面上看上去只是改变checkbox那么简单,然而实际开发中,实现起来并不是那么得心应手。尤其当listview比较多(比如屏幕最多只能显示10个item,但总共有12个item,也就是

在Android某些开发需求当中,有时候需要在listveiw中加入checkbox实现单选,多选操作。表面上看上去只是改变checkbox那么简单,然而实际开发中,实现起来并不是那么得心应手。尤其当listview比较多(比如屏幕最多只能显示10个item,但总共有12个item,也就是说listview的item数大于屏幕能够显示的item数)滑动屏幕的时候,由于适配器中getview()会重复使用被移除屏幕的item,所以会造成checkbox选择状态不正常的现象。自己在开发中碰到这样的问题很是苦恼,查了下资料,发现网上很少没有针对这类批量操作并没有一个完整的例子。搜了很多篇帖子才完美的实现这一常用的操作。所以在这里把这个Demo贴出来,供大家参考,希望能对大家有所帮助。
 
主界面的布局main.xml    这个就不多说什么
 
<?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>  

(编辑:我爱故事小小网_铜陵站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读