Hiện kết quả từ 1 tới 2 của 2

Chủ đề: Tích tất cả các checkbox trong listview với 1 checkbox riêng


  1. #1
    Thành Viên Mới Avatar của tungds
    Tham gia
    Dec 2013
    Bài gửi
    4

    Icon12 Tích tất cả các checkbox trong listview với 1 checkbox riêng

    Trong ứng dụng của mình có viết một adapter extends baseadapter với layout của nó bao gồm 1 image 1 textview và 1 checkbox. Hàm main của mình thì có layout là 1 checkbox (tạm gọi là checkall) và 1 listview bên dưới checkbox. Khi mình tích vào checkall thì tất cả các checkbox trong listview sẽ được tích. Vấn để của mình là khi mình tích vào ô checkall thì chỉ các children đang hiển thị trên màn hình là được tích còn cái children mà cần scroll xuống để thấy thì k được tích.
    Mã:
    for(int i = 0; i < list_channel_select.getCount() ; i++){
          RelativeLayout vg = (RelativeLayout) list_channel_select.getChildAt(i);
          if(vg != null){
              CheckBox checkbox = (CheckBox) vg.findViewById(R.id.checkbox_children);
              checkbox.setChecked(true);
          }
          else
               Log.d("Bug", "null tai : " + i);
      }
    Khi mình chạy thì chỉ có nhưng children đang hiển thị là lấy được vg còn những item chưa được hiển thị thì vg = null. . Mình cũng xem 1 ví dụ sử dụng CheckedTextView của android nhưng chỉ là với text và checkbox. Mình đang custom adapter của mình là |image| |textview| |checkbox|. Bạn nào có thể giúp mình với.Cảm ơn

    Chủ đề tương tự:


  2. #2
    Thành Viên Mới Avatar của tntkhang
    Tham gia
    Feb 2013
    Bài gửi
    2
    Giả sử mỗi Row của bạn là 1 chuỗi String + CheckBox cuối hàng. (VD: Hàng thứ i........[x] ). Thì bạn nên tạo 1 model chứa 2 thuộc tính này: private String name; private boolean checked;
    Khi bạn tích vào CheckAll thì bạn cho vòng lặp FOR duyệt hết ListData rồi setChecked = true sau đó gọi adapter update lại bằng function : adapter.notifyDatasetChange.
    Và trong Adapter bạn phải xét check: if(item.getChecked) ? checkBox.setChecked(true) : checkbox.setCheck(false).
    Thế này là ok.


    Lần sửa cuối bởi tntkhang; 11-02-14 lúc 10:43 AM

Đánh dấu

Quyền viết bài

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •