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中對應checkBox的狀態(tài),同時在onBindView/getView方法中根據(jù)statusList的值設(shè)置checkBox的狀態(tài)就好了。
----------------------分割線---------------------------------------------------------------------------------沒看到是要單選。。單選的話需要再加一個flag,記錄上次選擇的位置,然后從adapter當中獲取到對象,如果可見則修改checkStatus.
相關(guān)文章:
1. java - 部署web項目時無法省略項目名?2. mysql 5個left關(guān)鍵 然后再用搜索條件 幾千條數(shù)據(jù)就會卡,如何解決呢3. python - [已解決]flask QQ郵箱mail4. javascript - position fixed;設(shè)置了height 100 卻不是瀏覽器可視窗口的寬高,求大神釋疑。5. mysql - 在不允許改動數(shù)據(jù)表的情況下,如何優(yōu)化以varchar格式存儲的時間的比較?6. javascript - vue-cli proxyTable怎么配置7. 主題切換問題,用過別人的webapp在后臺切換模板主題后手機端打開網(wǎng)頁就是切換到的主題了8. python3.x - git bash如何運行.bat文件?9. html - eclipse 標簽錯誤10. java - 如何寫一個intellij-idea插件,實現(xiàn)編譯時修改源代碼的目的
