首页 > 解决方案 > 如何使特定项目在recyclerview上可点击?

问题描述

我想让我的like按钮在recyclerview上可以点击。当我点击 recyclerview 时,它显示我点击了,但我如何才能为 recyclerview 上的特定项目执行此操作,尤其是像 imageview。

我的适配器代码:

class MasterAdapter(val arrayList: ArrayList<Model>, val context: Context) 
RecyclerView.Adapter<MasterAdapter.ViewHolder>() {

class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {

    fun bindItems(model: Model) {

        itemView.locationTextSalonContainer.text = model.title
        itemView.descriptionSalon.text = model.des
        itemView.titleTextSalonContainer.text = model.name
        
itemView.descriptionIconSalonContainer.setImageResource(model.icon_circle)
        
itemView.titleIconSalonContainer.setImageResource(model.icon_building)
        itemView.salonContainerImage.setImageResource(model.image)
        itemView.textRating.text = model.rating
        itemView.textProfession.text = model.profession
        itemView.like.setImageResource(model.icon_heart)
    }
}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): 
ViewHolder {

    val v = 
LayoutInflater.from(parent.context).inflate(R.layout.masters_recyclerview, 
parent, false)

    return ViewHolder(v)
}

override fun getItemCount(): Int {
    return arrayList.size
}

override fun onBindViewHolder(holder: ViewHolder, position: Int) {
    holder.bindItems(arrayList[position])

    

    holder.itemView.setOnClickListener {
        if(position == 0 ) {
            Toast.makeText(context, "You clicked 1", 
Toast.LENGTH_SHORT).show()
        }
        if(position == 1) {

            Toast.makeText(context, "You clicked 2", 
Toast.LENGTH_SHORT).show()
        }
        if(position == 2) {

            Toast.makeText(context, "You clicked 3", 
Toast.LENGTH_SHORT).show()
        }
        if(position == 3) {

            Toast.makeText(context, "You clicked 4", 
Toast.LENGTH_SHORT).show()
        }
        if(position == 4) {

            Toast.makeText(context, "You clicked 5", 
Toast.LENGTH_SHORT).show()
        }
        if(position == 5) {

            Toast.makeText(context, "You clicked 6", 
Toast.LENGTH_SHORT).show()
        }
        if(position == 6) {

            Toast.makeText(context, "You clicked 7", 
Toast.LENGTH_SHORT).show()
        }
        if(position == 7) {

            Toast.makeText(context, "You clicked 8", 
 Toast.LENGTH_SHORT).show()
        }
    }
   }
}

我怎样才能使它可点击?有什么方法吗?等待答复,我会很高兴!sdsfascasfasfasfasfas

标签: androidkotlinandroid-recyclerview

解决方案


其实很简单,目前你正在设置行的点击监听器

所以你需要把它改成专门的ImageView,像这样

holder.itemView.like.setOnClickListener {
   ...
}

推荐阅读