Android listview checkbox 單選
問題描述
現(xiàn)在后臺返回一個(gè)是否默認(rèn)地址的值int Isdefault = bean.getDefault_address();
怎么實(shí)現(xiàn)checkbox切換?
問題解答
回答1:在對你的代碼改變最小的情況下可以這么寫,首先找到默認(rèn)選中的地址
int defaultPosition = -1;for (int i = 0; i < beanlist.size(); i++) { if(beanlist.get(i).getDefault_address()){ defaultPosition = i; break; }}
兩種情況:
當(dāng)選過一個(gè)其他地址后,再取消,默認(rèn)地址重新選中
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); }}
一旦選過其他的地址,默認(rèn)選項(xiàng)就不再起作用
tempPosition = defaultPosition;if(position == tempPosition){ holder.checkBox.setChecked(true);}else{ holder.checkBox.setChecked(false);}回答2:
創(chuàng)建一個(gè)數(shù)組以維護(hù)checkBox的狀態(tài)比較省事一點(diǎn)。當(dāng)CheckBox收到點(diǎn)擊事件時(shí)改變statusList中對應(yīng)checkBox的狀態(tài),同時(shí)在onBindView/getView方法中根據(jù)statusList的值設(shè)置checkBox的狀態(tài)就好了。
----------------------分割線---------------------------------------------------------------------------------沒看到是要單選。。單選的話需要再加一個(gè)flag,記錄上次選擇的位置,然后從adapter當(dāng)中獲取到對象,如果可見則修改checkStatus.
相關(guān)文章:
1. 致命錯(cuò)誤: Class ’appfacadeTest’ not found2. html5 - 如何實(shí)現(xiàn)帶陰影的不規(guī)則容器?3. objective-c - iOS開發(fā)支付寶和微信支付完成為什么跳轉(zhuǎn)到了之前開發(fā)的一個(gè)app?4. css - 移動(dòng)端字體設(shè)置問題5. python - 管道符和ssh傳文件6. javascript - 循環(huán)嵌套多個(gè)promise應(yīng)該如何實(shí)現(xiàn)?7. mysql優(yōu)化 - 關(guān)于mysql分區(qū)8. 請教各位大佬,瀏覽器點(diǎn) 提交實(shí)例為什么沒有反應(yīng)9. 前端 - IE9 css兼容問題10. javascript - ionic2 input autofocus 電腦成功,iOS手機(jī)鍵盤不彈出
