热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

listView中,checkBox的显示和隐藏

在listView中,每个item都有一个ChexBox,当显示的时候在listView外面设置一个按钮,点击显示和隐藏listView中所有的checBox;开始的我的实现方法为

在listView中,每个item都有一个ChexBox,当显示的时候在listView外面设置一个按钮,点击显示和隐藏listView中所有的checBox;

开始的我的实现方法为:

Button add = (Button)findViewById(R.id.add); 
        add.setOnClickListener(new OnClickListener() { 
            @Override 
            public void onClick(View v) {

                if(flage){checkBox.setVisibility(View.VISIBLE);flage=!flage;} 
                else{checkBox.setVisibility(View.GONE);flage=!flage;}                
            } 
        });

后来发现,只能改变listView中第一个checBox,对listView中其他的item不起作用。

 

 

以上做法不对,正确的做法是在Adapter中的getView中设置隐藏和显示,做法如下:

在getView中,

final CheckBox checkBox = (CheckBox) view.findViewById(R.id.checkBox); 
                if(flage){checkBox.setVisibility(View.VISIBLE);} 
                else{checkBox.setVisibility(View.GONE);}

 

然后在按钮点击事件中:

@Override 
            public void onClick(View v) { 
                flage=!flage; 
                mySubscriptionsListAdapt.notifyDataSetChanged(); 
            }

 

notifyDataSetChanged();是实现listView刷新的功能,不需要再次加载整个listView。



推荐阅读
author-avatar
讨厌上学的-彭志超-_354
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有