Rumah > Soal Jawab > teks badan
Kini latar belakang mengembalikan nilai sama ada alamat lalai adalah int Isdefault = bean.getDefault_address();
Bagaimana untuk melaksanakan penukaran kotak pilihan?
为情所困2017-05-16 13:31:21
Anda boleh menulis seperti ini dengan perubahan minimum pada kod anda, mula-mula cari alamat yang dipilih secara lalai
int defaultPosition = -1;
for (int i = 0; i < beanlist.size(); i++) {
if(beanlist.get(i).getDefault_address()){
defaultPosition = i;
break;
}
}
Dua situasi:
Selepas memilih alamat lain dan kemudian membatalkannya, alamat lalai akan dipilih semula
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);
}
}
Sebaik sahaja anda memilih alamat lain, pilihan lalai tidak akan berfungsi lagi
tempPosition = defaultPosition;
if(position == tempPosition){
holder.checkBox.setChecked(true);
}else{
holder.checkBox.setChecked(false);
}
淡淡烟草味2017-05-16 13:31:21
Lebih mudah untuk mencipta tatasusunan untuk mengekalkan status Kotak semak.
Apabila Kotak Semak menerima acara klik, tukar status Kotak semak yang sepadan dalam statusList, dan pada masa yang sama tetapkan status Kotak semak mengikut nilai statusList dalam kaedah onBindView/getView.
------------------------Barisan pemisah----------------------- -- ------------------------------------------------ -- ------
Saya tidak nampak bahawa ia memerlukan pemilihan tunggal. . Untuk pemilihan tunggal, anda perlu menambah bendera untuk merekodkan kedudukan terakhir yang dipilih, dan kemudian dapatkan objek daripada penyesuai Jika ia kelihatan, ubah suai checkStatus.