안녕하세요~~
엑티비티 안에 여러 프래그먼트들로 구성된 간단한 sns 앱을 만들고 있습니다.
한 프래그먼트 내에 recyclerview가 있고, 각 아이템마다 '좋아요' 이미지를 클릭하면 색이 채워진 '좋아요' 이미지를 디스플레이 하고자 합니다.
inner class FollowRecyclerViewAdapter: RecyclerView.Adapter<RecyclerView.ViewHolder>(){
override fun onCreateViewHolder(p0: ViewGroup, p1: Int): RecyclerView.ViewHolder {
var view = LayoutInflater.from(p0.context).inflate(R.layout.item_follow,p0,false)
return CustomViewHolder(view)
}
inner class CustomViewHolder(view: View) : RecyclerView.ViewHolder(view) {
}
override fun getItemCount(): Int {
return contentDTOs!!.size
}
override fun onBindViewHolder(p0: RecyclerView.ViewHolder, p1: Int) {
var viewholder = (p0 as CustomViewHolder).itemView
var currentIndex = 0
<--중간 생략-->
//좋아요 카운터 매칭
viewholder.followitem_favoritecounter_textview.text = "좋아요 " + contentDTOs!![p1].favoriteCount
//좋아요가 클릭된 경우
//다시 카운터 매칭
viewholder.followitem_favorite_imageview.setOnClickListener {
favoriteEvent(currentUserUid!!, p1)
}
//다시 아이콘 매칭
if (contentDTOs!![p1].favorites.containsKey(currentUserUid)) { //좋아요를 클릭한 경우
viewholder.followitem_favorite_imageview.setImageResource(R.drawable.ic_favorite_fill)
} else { //좋아요를 클릭하지 않은 경우
viewholder.followitem_favorite_imageview.setImageResource(R.drawable.ic_favorite_border)
}
<--이하 생략-->
}
위 코드와 같이 '좋아요' ImageView (followitem_favorite_imageview) 에 setOnClickListener를 적용했구요, 데이터베이스에는 코딩한 대로 바로 업데이트가 되는데
화면상에는 색이 채워진 좋아요 이미지가 실시간으로 적용되지 않습니다..ㅠㅠ
다른 프래그먼트에 갔다가 와야 -> 채워진 좋아요 이미지가 디스플레이 됩니다.
구글링 해보니 refresh function을 만들거나, detach attach 기능을 사용하라고 하는데
그래도 적용이 안됩니다..
제가 맞닥뜨린 이 문제가 어떤 종류의 문제인지 알려주세요..
프래그먼트 갱신과 관련된 문제가 맞나요? 맞다면, 어떻게 해결해야 할까요 ㅠㅠ
답변 부탁드립니다..!!! 감사합니다.
(추가, onResume & onStrop 기능이 뭔지도 궁금합니다. 저에게 필요한 기능인가요?)