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. javascript - 用js實現遠程js調用時出現時間機制問題怎樣解決?2. javascript - 如何合并數組里某個key值一樣的對象,合并后把不相同的值放到一個數組3. javascript - 關于微信公眾號開發的一個trouble!4. html5 - z-index在瀏覽器調試有效 手機測試無效5. javascript - 微信公眾號網頁使用redux如何管理用戶刷新?6. javascript - 微信小程序 如何實現這種左滑動出現刪除的辦法?有相關api嗎?7. css3 - 求clearfix使用方法8. html5 - svg標簽如何兼容IE89. html5 - webapp中將錄下的視頻,照片上傳服務器之前,需要如何處理(轉變格式?),降低對服務器的壓力?10. javascript - vue.js 中2個v-if 怎么處理?
