Pilihan radio kotak semak listview Android
为情所困
为情所困 2017-05-16 13:29:21
0
2
740

Kini latar belakang mengembalikan nilai sama ada alamat lalai adalah int Isdefault = bean.getDefault_address();


Bagaimana untuk melaksanakan penukaran kotak pilihan?

为情所困
为情所困

membalas semua(2)
为情所困

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:

  1. 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);
    }
}
  1. 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);
}
淡淡烟草味

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan