自定义ListView item包含checkbox实现单选记录自己开发是遇到的问题
来源:互联网 发布:mac book可以安装vs么 编辑:程序博客网 时间:2024/06/05 16:00
记录自己在项目中遇到的问题 项目需求是Listview加载CheckBox只能单选 一开始我是这么写的
holder.item_cb_section.setChecked(selectIndex == position ? true: false);holder.item_cb_section.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (selectIndex == position)((CheckBox) v).setChecked(true);else if (selectIndex != -1) {View item = mListView.getChildAt(selectIndex);if (item != null) {CheckBox ch = (CheckBox) item.findViewById(R.id.item_cb_section);ch.setChecked(true);}}selectIndex = position;}});一开始没想到数据会有很多也没有去测试以为显示页面上可以实现单选就可以了没想到的测试一测就发现只要Listview一下滑就可以多选了所以在网上查了下写出如下代码
holder.item_cb_section.setId(position);holder.item_cb_section.setOnCheckedChangeListener(new OnCheckedChangeListener() {//把上次被选中的checkbox设为false @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked){//实现checkbox的单选功能,同样适用于radiobutton if(temp!=-1){ //找到上次点击的checkbox,并把它设置为false,对重新选择时可以将以前的关掉 CheckBox tempCheckBox=(CheckBox)((Activity) mContext).findViewById(temp); if(tempCheckBox!=null) tempCheckBox.setChecked(false); } temp=buttonView.getId();//保存当前选中的checkbox的id值 } } });虽然可以解决了我的单选问题但是发现点击事件不能用了 所以也算空欢喜了下 仔细研究了下还是把我之前的代码加上所以完整代码如下
holder.item_cb_section.setId(position);holder.item_cb_section.setOnCheckedChangeListener(new OnCheckedChangeListener() {//把上次被选中的checkbox设为false @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked){//实现checkbox的单选功能,同样适用于radiobutton if(temp!=-1){ //找到上次点击的checkbox,并把它设置为false,对重新选择时可以将以前的关掉 CheckBox tempCheckBox=(CheckBox)((Activity) mContext).findViewById(temp); if(tempCheckBox!=null) tempCheckBox.setChecked(false); } temp=buttonView.getId();//保存当前选中的checkbox的id值 } } }); //System.out.println("temp:"+temp); //System.out.println("position:"+position); if(position==temp)//比对position和当前的temp是否一致 holder.item_cb_section.setChecked(true); else holder.item_cb_section.setChecked(false);//holder.item_cb_section.setChecked(selectIndex == position ? true: false);holder.item_cb_section.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (selectIndex == position)((CheckBox) v).setChecked(true);else if (selectIndex != -1) {View item = mListView.getChildAt(selectIndex);if (item != null) {CheckBox ch = (CheckBox) item.findViewById(R.id.item_cb_section);//ch.setChecked(true);}}selectIndex = position;}});
//ch.setChecked(true);以上代码ch.setChecked(true);不能加如果加上的话当你点击第二个item的话会报错。
0 0
- 自定义ListView item包含checkbox实现单选记录自己开发是遇到的问题
- 自定义ListView item包含checkbox实现单选和多选
- 自定义ListView item包含checkbox实现单选和多选
- Listview的item包含radiobutton实现单选,checkbox也适用
- 探讨Android开发ListView的Item里包含EditText控件遇到的一些问题
- 关于ListView的item中包含Button或Checkbox时导致item无法点击问题
- Android checkBox 在listView 实现单选,并记录保存
- Android 使用CheckBox实现ListView自定义单选
- ListView的Item包含checkBox的时候的点击事件
- listview+checkbox实现单选
- Android ListView中点击单行实现RadioButton的单选功能,自定义Item布局文件
- 关于ListView的Item含有CheckBox所遇到的一些问题
- Android开发ListView中包含CheckBox(点击item选中CheckBox),并设置其全选反选等功能
- android开发之listview中放入checkbox实现单选
- Android开发--自定义控件实现listview的滑动删除item
- Android开发ListView中包含EditText控件遇到的问题
- 自己遇到的一个单例模式的问题记录
- 工作中遇到的listview相关问题(二)——item包含EditText
- MySQL数据库优化
- pojo实体创建
- web app开发 转
- Java中的内部类
- ARP协议包类型的几种应用
- 自定义ListView item包含checkbox实现单选记录自己开发是遇到的问题
- Android常用延时操作的两种方法
- 用Scrapy爬取教务处通知公告
- 从 数组1中过滤出数组2中没有的对象
- 关于学习Gson的简单分析
- Xcode更新7.2 之后注释插件失效的解决办法
- IntelliSense: PCH warning: header stop cannot be in a macro or #if block. An intellisense PCH file
- React-Native的学习指南
- 为什么要用内省和BeanUtils以及路径问题