Как и другие пользователи, уже упоминавшиеся myViewHolder.itemView.setOnClickListener
, чтобы установить onClick на держатель recyclerView. Но, поправьте меня, если я ошибаюсь, кажется, что вы хотите, чтобы ваш флажок был отмечен / снят только щелчком владельца. В этом случае вам нужно отключить его, добавив следующие коды в ваш макет xml
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
В противном случае нажатие на флажок приведет к его клику и не выполнит код, который вы написали для itemview
клика.
Поскольку вы устанавливаете его на флажок на основе deliveryPoint.isCheckedForLocationUpdate
, вы можете notifyItemChanged(position)
обновить флажок держателя после щелчка.
Проверьте, помогает ли это.
РЕДАКТИРОВАТЬ : Исходя из комментариев, если вы на самом деле пытаетесь установить флажок в представлении, вы должны использовать что-то вроде этого: также, если вы создаете новый объект deliveryPoint1
, в исходный объект, который у вас есть в представлении, не вносятся никакие изменения.
myViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (myViewHolder.checkBox.isChecked()) {
deliveryPoint.setCheckedForLocationUpdate(false);
onItemCheckListener.onItemUncheck(deliveryPoint);
} else {
deliveryPoint.setCheckedForLocationUpdate(true);
onItemCheckListener.onItemCheck(deliveryPoint);
}
}
});