Android listview checkbox 单选
问题描述
现在后台返回一个是否默认地址的值int Isdefault = bean.getDefault_address();
怎么实现checkbox切换?
问题解答
回答1:在对你的代码改变最小的情况下可以这么写,首先找到默认选中的地址
int defaultPosition = -1;for (int i = 0; i < beanlist.size(); i++) { if(beanlist.get(i).getDefault_address()){ defaultPosition = i; break; }}
两种情况:
当选过一个其他地址后,再取消,默认地址重新选中
if(tempPosition > -1){ if(position == tempPosition){holder.checkBox.setChecked(true); }else{holder.checkBox.setChecked(false); }}else{ if(position == defaultPosition){holder.checkBox.setChecked(true); }else{holder.checkBox.setChecked(false); }}
一旦选过其他的地址,默认选项就不再起作用
tempPosition = defaultPosition;if(position == tempPosition){ holder.checkBox.setChecked(true);}else{ holder.checkBox.setChecked(false);}回答2:
创建一个数组以维护checkBox的状态比较省事一点。当CheckBox收到点击事件时改变statusList中对应checkBox的状态,同时在onBindView/getView方法中根据statusList的值设置checkBox的状态就好了。
----------------------分割线---------------------------------------------------------------------------------没看到是要单选。。单选的话需要再加一个flag,记录上次选择的位置,然后从adapter当中获取到对象,如果可见则修改checkStatus.
相关文章:
1. javascript - nginx 反向代理 js跨域问题?2. javascript - sublime已经安装了babel插件和sublimelinter-jshint为什么还是显示es6语法错误?3. html5 - 为什么浏览器可以显示HTML文档中未被定义的标签?4. css3 - img垂直水平居中问题5. javascript - 图片能在网站显示,但控制台仍旧报错403 (Forbidden)6. mysql - Sequel Pro 如何格式化(美化)SQL语句?7. 主从复制 - MySQL 主从延迟 300s 以上,求大神解答8. 请教使用PDO连接MSSQL数据库插入是乱码问题?9. php怎么连接数据库10. 关于设计mysql中一个字段自增的函数。

网公网安备