android - 如何使特定项目在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
解决方案
其实很简单,目前你正在设置行的点击监听器
所以你需要把它改成专门的ImageView,像这样
holder.itemView.like.setOnClickListener {
...
}
推荐阅读
- java - 获取所有重复项
- elasticsearch - 读取 Logstash 日志但不会推送到 elasticsearch
- python - 使用 tensorflow 模型(更快的 rcnn)检测对象时,opencv dnn 的结果看起来很奇怪
- python - 创建GUI时如何在Python中创建下拉按钮并每次提取选择并将其分配给变量?
- ios - React Native Expo 应用程序在发布到 Testflight 时崩溃
- html - 正则表达式 - 使用换行符查找标记
- sql - 需要向下钻取 SCCM 中与部署状态相关的服务器的计算机名称
- .net - 溢出隐藏不适用于幻灯片
- android - 运行子进程 native-run 时出错
- oracle - 正则表达式替换字符串中所有数字的格式相同(Oracle)