onclicklistener on Динамический флажок и проверьте, установлен флажок или нет - PullRequest
0 голосов
/ 04 мая 2018

я хочу применить onclicklistener к динамическим checkbox
и убедитесь, что checkbox равно click, затем добавьте getid в ArrayList, а если checkbox не отмечено, удалите getid из ArrayList

for (int i = 0; i < array.length(); i++) {
 //getting product object from json array
 JSONObject product = array.getJSONObject(i);
 cb = new CheckBox(getApplicationContext());
 cb.setText(product.getString("service_name"));
 cb.setId(product.getString("id"));
 cb.setTag(product.getString("id"));
 linearMain.addView(cb);
}


buttons.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View v) {

  cb.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
    if (cb.isChecked()) {
     testoo.add(cb.getId());

    } else {
     testoo.remove(cb.getId()); //checkbox unchecked
    }
   }
  });

 }
});

1 Ответ

0 голосов
/ 04 мая 2018

Доступен более простой способ, вам не нужно ретранслировать при нажатии CheckBox, CheckBox Чтобы прослушать состояние проверки изменения в CheckBox, вы можете настроить прослушиватель, показанный ниже.

cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked)
                testoo.add(cb.getId());
            else
                testoo.remove(cb.getId());
        }
    });
...