如何访问回收站视图中的按钮?
Posted
技术标签:
【中文标题】如何访问回收站视图中的按钮?【英文标题】:How to I access button inside a recycler view? 【发布时间】:2020-09-05 13:31:15 【问题描述】:这是我的 RecyclerView 适配器
class RecyclerAdapter(private val recyclerList: List): RecyclerView.Adapter()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): mainRecyclerViewHolder
val itemView = LayoutInflater.from(parent.context).inflate(R.layout.quiz_item_recycler_view,
parent, false)
return mainRecyclerViewHolder(itemView)
override fun getItemCount() = recyclerList.size
override fun onBindViewHolder(holder: mainRecyclerViewHolder, position: Int)
val currentItem = recyclerList[position]
holder.imageView.setImageResource(currentItem.imageResource)
holder.textView.text = currentItem.recyclerCardText
class mainRecyclerViewHolder(itemView: View): RecyclerView.ViewHolder(itemView)
val imageView: ImageView = itemView.rec_image
val textView: TextView = itemView.text_view_1
这是我的数据类
数据类 RecyclerItemMain(val imageResource: Int, val recyclerCardText: String, val button: Button)
【问题讨论】:
你在说什么按钮?你的 R.layout.quiz_item_recycler_view 布局中有 ine 吗?还是你还有什么想说的? 我有一个回收站视图,里面有一个按钮 我如何为 Recyclerview 中的每个按钮设置一个 onclicklistener?以便每个按钮启动不同的活动 请相应地更新问题。同时添加 Viewholder 的 xml 文件 【参考方案1】:像这样:
override fun onBindViewHolder(holder: CustomViewHolder, position: Int)
holder.yourButton.setOnClickListener v ->
// Here your start your other activity or navigate to another fragment
请记住,如果您打算根据按钮将用户发送到不同的活动,则必须创建一个 when
表达式,它将根据 recyclerItem 中的另一个值将用户发送到活动,例如文本该项目,在你的情况下currentItem.recyclerCardText
这是你的完整适配器,重新组织:
class RecyclerAdapter(recyclerList: List<CategorySectionIcon>) :
RecyclerView.Adapter<YourAdapter.CustomViewHolder>()
private var recyclerList: List<CategorySectionIcon>? = recyclerList
inner class CustomViewHolder(
//Get a reference to the Views in our layout//
val myView: View
) : RecyclerView.ViewHolder(myView)
var textView: TextView = myView.findViewById(R.id.your_text)
var imageView: ImageView = myView.findViewById(R.id.your_image)
var yourButton: Button = myView.findViewById(R.id.iv_category_imagen_icon)
override//Construct a RecyclerView.ViewHolder//
fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomViewHolder
val layoutInflater = LayoutInflater.from(parent.context)
val itemView =
layoutInflater.inflate(R.layout.quiz_item_recycler_view, parent, false)
return CustomViewHolder(itemView)
override fun onBindViewHolder(holder: CustomViewHolder, position: Int)
holder.textView.text = recyclerList!![position].recyclerCardText
holder.imageView.setImageResource(recyclerList!![position].image)
holder.yourButton.setOnClickListener v ->
// Here your start your other activity or navigate to another fragment
//Calculate the item count for the RecylerView//
override fun getItemCount(): Int
return recyclerList!!.size
【讨论】:
以上是关于如何访问回收站视图中的按钮?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 android 中的回收器视图运行 for 循环?
如何解决单击水平 RecyclerView 中的项目的问题?