2016-03-17 3 views
0

У меня есть listview с настраиваемыми элементами с checkbox и у меня также есть собственный заголовок для listview с выбрать все checkbox field.Now я всякий раз, когда у меня есть выбор заголовка checkbox, чем я хочу, чтобы все checkbox в listview выбран как все выбрать и все отмените на заголовок.Пользовательский ListView для Android с настраиваемым заголовком?

Вот код для адаптера и нажмите событие на флажке.

HEADER КОД:

ftoPfmsDetails = (ListView) findViewById(R.id.bene_upload_details); 
     View header = getLayoutInflater().inflate(R.layout.upload_grid_header, null); 
     ftoPfmsDetails.addHeaderView(header); 

КОД ADAPTER:

final FtoDetailsAdapter adapter = new FtoDetailsAdapter(BeneficiaryDataForUpload.this, gridUploadData, 2, chkAll); 

     adapter.notifyDataSetChanged(); 
     ftoPfmsDetails.setAdapter(adapter); 

HEADER CHECKBOX ALL ВЫБОР КОДА

final CheckBox chkAll = (CheckBox) header.findViewById(R.id.selectAll); 
chkAll.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       for (int i = 0; i < adapter.getCount(); i++) { 
        ftoPfmsDetails.setItemChecked(i, true); 
       } 
      } 
     }); 
+0

попробуйте эту ссылку http://wptrafficanalyzer.in/blog/implementing-checkall-and-uncheckall-for-a-listview-in-android/ – Nitesh

ответ

0

Чтобы использовать setItemChecked, ваш ListView должен быть настроен для его обработки. Смотрите эту цитату из документации:

действительна только если режим выбора был установлен в CHOICE_MODE_SINGLE или CHOICE_MODE_MULTIPLE. http://developer.android.com/reference/android/widget/AbsListView.html#setItemChecked(int, булево)

Таким образом, вы можете следовать этому методу и установить ListView в CHOICE_MODE_MULTIPLE и сделать ряд проверяемый.

ИЛИ вместо того, чтобы установить OnClickListener на ваши заголовки, установите OnCheckedChangedListener и добавьте флаг к вашему адаптеру и установите его в качестве слушателя, например. FtoDetailsAdapter.checkAll = isChecked;. Затем после установки этого флага вам просто нужно уведомить адаптер о том, что набор данных изменился, и обновить флажки списков соответственно в адаптерах getView.

+0

thanks u ... yoooo ... done ... found solution .. после этого на onclick .. boolean chk = ((CheckBox) v) .isChecked(); for (int i = 0; i

Смежные вопросы