Android listview checkbox 單選
問題描述
現(xiàn)在后臺返回一個是否默認地址的值int Isdefault = bean.getDefault_address();
怎么實現(xiàn)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:
創(chuàng)建一個數(shù)組以維護checkBox的狀態(tài)比較省事一點。當CheckBox收到點擊事件時改變statusList中對應(yīng)checkBox的狀態(tài),同時在onBindView/getView方法中根據(jù)statusList的值設(shè)置checkBox的狀態(tài)就好了。
----------------------分割線---------------------------------------------------------------------------------沒看到是要單選。。單選的話需要再加一個flag,記錄上次選擇的位置,然后從adapter當中獲取到對象,如果可見則修改checkStatus.
相關(guān)文章:
1. docker網(wǎng)絡(luò)端口映射,沒有方便點的操作方法么?2. mac連接阿里云docker集群,已經(jīng)卡了2天了,求問?3. vim - docker中新的ubuntu12.04鏡像,運行vi提示,找不到命名.4. 為什么我ping不通我的docker容器呢???5. angular.js - angular內(nèi)容過長展開收起效果6. html5和Flash對抗是什么情況?7. golang - 用IDE看docker源碼時的小問題8. 我何時應(yīng)該在Java中使用JFrame.add(component)和JFrame.getContentPane()。add(component)9. 前端 - @media query 使用出現(xiàn)的問題?10. 運行python程序時出現(xiàn)“應(yīng)用程序發(fā)生異常”的內(nèi)存錯誤?

網(wǎng)公網(wǎng)安備