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. boot2docker無法啟動2. 關docker hub上有些鏡像的tag被標記““This image has vulnerabilities””3. docker-compose中volumes的問題4. javascript - mock.js可以存儲數據嗎5. nignx - docker內nginx 80端口被占用6. java - SSH框架中寫分頁時service層中不能注入分頁類7. docker安裝后出現Cannot connect to the Docker daemon.8. dockerfile - 為什么docker容器啟動不了?9. golang - 用IDE看docker源碼時的小問題10. docker api 開發的端口怎么獲取?

網公網安備