안드로이드 - RecyclerView
2023. 3. 7. 17:44ㆍ코딩일기/Android
평범한 그냥 ViewHolder 클래스.
리사이클러뷰는 뷰를 재사용하기 때문에
좋아요 표시를 했던 뷰가, 밑에 재사용되는 뷰에도 좋아요 표시가 눌려있는 오류를 경험했다.
이후에 코드를 고쳐서 문제 해결!
@Override
public void onBindViewHolder(@NonNull VH holder, int position) {
ToiletItem toiletItem = items.get(position);
Glide.with(context).load(toiletItem.photo).into(holder.ivImg);
holder.tvName.setText(toiletItem.toiletNm);
holder.tvAddr.setText(toiletItem.rnAdres);
// 다시 뷰가 올라올때 좋아요 버튼 설정.
if (toiletItem.like) {
holder.ivFavorite.setImageResource(R.drawable.baseline_favorite_24);
} else {
holder.ivFavorite.setImageResource(R.drawable.baseline_favorite_border_24);
}
// 클릭 리스너
holder.ivFavorite.setOnClickListener(v -> {
if (toiletItem.like) {
// 좋아요 해제
holder.ivFavorite.setImageResource(R.drawable.baseline_favorite_border_24);
toiletItem.like = !toiletItem.like;
} else {
// 좋아요 설정
holder.ivFavorite.setImageResource(R.drawable.baseline_favorite_24);
toiletItem.like = !toiletItem.like;
}
});
}
반응형
'코딩일기 > Android' 카테고리의 다른 글
안드로이드 - JSON 파싱 , RecyclerView (0) | 2023.03.08 |
---|---|
안드로이드 - TODO: 네비게이션 바 숨기기 찾아보기 (0) | 2023.03.08 |
안드로이드 - 네이버 지도 API (1) | 2023.03.06 |
안드로이드 - Wi-Fi 연결 문제 (무선디버깅) (0) | 2023.03.06 |
안드로이드 - 제주도 화장실 프로젝트 (0) | 2023.03.06 |