Android listview checkbox 單選
問(wèn)題描述
現(xiàn)在后臺(tái)返回一個(gè)是否默認(rèn)地址的值int Isdefault = bean.getDefault_address();
怎么實(shí)現(xiàn)checkbox切換?
問(wèn)題解答
回答1:在對(duì)你的代碼改變最小的情況下可以這么寫(xiě),首先找到默認(rèn)選中的地址
int defaultPosition = -1;for (int i = 0; i < beanlist.size(); i++) { if(beanlist.get(i).getDefault_address()){ defaultPosition = i; break; }}
兩種情況:
當(dāng)選過(guò)一個(gè)其他地址后,再取消,默認(rèn)地址重新選中
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); }}
一旦選過(guò)其他的地址,默認(rèn)選項(xiàng)就不再起作用
tempPosition = defaultPosition;if(position == tempPosition){ holder.checkBox.setChecked(true);}else{ holder.checkBox.setChecked(false);}回答2:
創(chuàng)建一個(gè)數(shù)組以維護(hù)checkBox的狀態(tài)比較省事一點(diǎn)。當(dāng)CheckBox收到點(diǎn)擊事件時(shí)改變statusList中對(duì)應(yīng)checkBox的狀態(tài),同時(shí)在onBindView/getView方法中根據(jù)statusList的值設(shè)置checkBox的狀態(tài)就好了。
----------------------分割線(xiàn)---------------------------------------------------------------------------------沒(méi)看到是要單選。。單選的話(huà)需要再加一個(gè)flag,記錄上次選擇的位置,然后從adapter當(dāng)中獲取到對(duì)象,如果可見(jiàn)則修改checkStatus.
相關(guān)文章:
1. 為什么我ping不通我的docker容器呢???2. 關(guān)于docker下的nginx壓力測(cè)試3. debian - docker依賴(lài)的aufs-tools源碼哪里可以找到啊?4. angular.js - angular內(nèi)容過(guò)長(zhǎng)展開(kāi)收起效果5. javascript - webpack熱加載配置不生效6. docker start -a dockername 老是卡住,什么情況?7. javascript - js代碼獲取驗(yàn)證碼倒計(jì)時(shí)問(wèn)題8. dockerfile - [docker build image失敗- npm install]9. 主從備份 - 跪求mysql 高可用主從方案10. java - instance method中 static后的<K>是什么意思?
