距开课0天0时0分-10202190秒
为情所困2017-05-16 13:29:21 0 2 376
[Android讨论组]举报回复话题 ↕
现在后台返回一个是否默认地址的值int Isdefault = bean.getDefault_address();
怎么实现checkbox切换?
2
0
分享
为情所困 2017-05-16 13:31:212楼
在对你的代码改变最小的情况下可以这么写,首先找到默认选中的地址
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); }
赞 +0添加回复
淡淡烟草味 2017-05-16 13:31:211楼
创建一个数组以维护checkBox的状态比较省事一点。当CheckBox收到点击事件时改变statusList中对应checkBox的状态,同时在onBindView/getView方法中根据statusList的值设置checkBox的状态就好了。
----------------------分割线---------------------------------------------------------------------------------没看到是要单选。。单选的话需要再加一个flag,记录上次选择的位置,然后从adapter当中获取到对象,如果可见则修改checkStatus.
为情所困 2017-05-16 13:31:212楼
在对你的代码改变最小的情况下可以这么写,首先找到默认选中的地址
两种情况:
当选过一个其他地址后,再取消,默认地址重新选中
一旦选过其他的地址,默认选项就不再起作用
赞 +0添加回复
淡淡烟草味 2017-05-16 13:31:211楼
创建一个数组以维护checkBox的状态比较省事一点。
当CheckBox收到点击事件时改变statusList中对应checkBox的状态,同时在onBindView/getView方法中根据statusList的值设置checkBox的状态就好了。
----------------------分割线---------------------------------------------------------------------------------
没看到是要单选。。单选的话需要再加一个flag,记录上次选择的位置,然后从adapter当中获取到对象,如果可见则修改checkStatus.
赞 +0添加回复