現在後台傳回一個是否預設位址的值int Isdefault = bean.getDefault_address();
##怎麼實作checkbox切換?
在對你的程式碼改變最小的情況下可以這麼寫,首先找到預設選取的位址
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); }
建立一個陣列以維護checkBox的狀態比較省事一點。 當CheckBox收到點擊事件時改變statusList中對應checkBox的狀態,同時在onBindView/getView方法中根據statusList的值設定checkBox的狀態就好了。
----------------------分割線------------------------- -------------------------------------------------- ------沒看到是要單選。 。單選的話需要再加一個flag,記錄上次選擇的位置,然後從adapter當中獲取到對象,如果可見則修改checkStatus.
在對你的程式碼改變最小的情況下可以這麼寫,首先找到預設選取的位址
兩種情況:
當選過一個其他位址後,再取消,預設位址重新選取
一旦選過其他的位址,預設選項就不再起作用
建立一個陣列以維護checkBox的狀態比較省事一點。
當CheckBox收到點擊事件時改變statusList中對應checkBox的狀態,同時在onBindView/getView方法中根據statusList的值設定checkBox的狀態就好了。
----------------------分割線------------------------- -------------------------------------------------- ------
沒看到是要單選。 。單選的話需要再加一個flag,記錄上次選擇的位置,然後從adapter當中獲取到對象,如果可見則修改checkStatus.