Я использую логику для кнопок «Мне нравится» и «Не нравится»
, где я объявил переменную
var user_like_dislike_state == 0
Когда я нажимаю кнопку «Нравится»при повторном нажатии значение изменится на единицу, оно вернется к 0
if(user_like_dislike_state == 0 || user_like_dislike_state == 1){
user_like_dislike_state = -1
} else {
user_like_dislike_state = 0
}
. Это работает, когда я пытаюсь использовать одну запись, но когда я пытаюсь использовать эту логику в Recyclerview
ЕслиМне понравился пост 1, затем я пытаюсь понравиться пост 4, тогда он автоматически изменит значение на 0
В каких 3 штатах я дал
user_like_dislike_state == 1 : **Like**
user_like_dislike_state == 0 : **Non**
user_like_dislike_state == -1 : **Dislike**
Adapter.kt:
class ViewsinglepostAdapter(var commentsList: ArrayList<Comment>, val upVote : View.OnClickListener, val downVote: View.OnClickListener): RecyclerView.Adapter<ViewsinglepostAdapter.ViewHolder>(){
var user_like_dislike_state = 0
var comment_id = 0
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.user_name?.setText(commentsList.get(position).User)
holder.comment?.setText(commentsList.get(position).comment)
holder.upvote?.setOnClickListener({
if(user_like_dislike_state == 0 || user_like_dislike_state == -1){
user_like_dislike_state = 1
} else {
user_like_dislike_state = 0
}
comment_id = commentsList.get(position).Id
upVote.onClick(it)
})
holder.downvote?.setOnClickListener({it->
if(user_like_dislike_state == 0 || user_like_dislike_state == 1){
user_like_dislike_state = -1
} else {
user_like_dislike_state = 0
}
comment_id = commentsList.get(position).Id
downVote.onClick(it)
user_like_dislike_state == 0
})
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder{
val itemView = LayoutInflater.from(parent.context).inflate(R.layout.singlecomment,parent,false)
return ViewHolder(itemView)
}
override fun getItemCount(): Int {
return commentsList.count()
}
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView){
var upvote: ImageView? = null
var downvote: ImageView? = null
var user_name: TextView? = null
var comment: TextView? = null
init {
this.upvote = itemView.findViewById(R.id.upvote_post_img)
this.downvote = itemView.findViewById(R.id.down_vote_post_img)
this.user_name = itemView.findViewById(R.id.user_name)
this.comment = itemView.findViewById(R.id.comment)
}
}
}