Вы можете установить OnCheckedChangeListener
на holder.cbSelect.
в своем адаптере.
holder.cbSelect.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
dataList.get(holder.getAdapterPosition()).setSelected(isChecked);
// here you can call listener to get notified
}
});
}
Вы можете иметь listener
, чтобы получать уведомления в своем Activity.
Для добавления слушателя,
1. Создайте interface
:
public interface OnMyCheckBoxCheckedChangeListener {
void onMyCheckBoxCheckedChange();
}
2. Добавьте параметр в свой конструктор Адаптера:
private OnMyCheckBoxCheckedChangeListener mOnMyCheckBoxCheckedChangeListener;
public YourAdapter(..., ..., OnMyCheckBoxCheckedChangeListener onMyCheckBoxCheckedChangeListener) {
mOnMyCheckBoxCheckedChangeListener = onMyCheckBoxCheckedChangeListener;
}
3. Вызовите интерфейс, на который хотите уведомить:
holder.cbSelect.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
dataList.get(holder.getAdapterPosition()).setSelected(isChecked);
mOnMyCheckBoxCheckedChangeListener.onMyCheckBoxCheckedChange();
}
});
}
4. Установите адаптер из вашей деятельности:
yourRecyclerView.setAdapter(new YourAdapter(..., ..., new OnMyCheckBoxCheckedChangeListener() {
@Override
public void onMyCheckBoxCheckedChange() {
// you will get notified here.
}
}));