请告诉我如何将recyclerview上的view元素的ID(位置)转移到另一个类中?
class CardAdapter : RecyclerView.Adapter<CardAdapter.CardViewHolder>(), View.OnClickListener {
private var cardList = ArrayList<Card>()
private lateinit var card: Card
class CardViewHolder(
val binding: FragmentCardBinding
) : RecyclerView.ViewHolder(binding.root)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CardViewHolder {
val inflater = LayoutInflater.from(parent.context)
val binding = FragmentCardBinding.inflate(inflater, parent, false)
return CardViewHolder(binding)
}
@SuppressLint("SetTextI18n")
override fun onBindViewHolder(holder: CardViewHolder, position: Int) {
card = cardList[position]
..
}
override fun getItemCount(): Int = cardList.size
override fun onClick(v: View) {
when (v.id) {
R.id.root_card_template -> {
val intent = Intent(v.context, ProductActivity::class.java)
// need put id into ProductActivty
intent.putExtra("item", card.id)
v.context.startActivity(intent)
}
}
}
目前,它只传递最后生成的元素的ID,由于某种原因,Internet上几乎没有关于这个分数的信息
2条答案
按热度按时间68de4m5k1#
只需创建一个接口并在调用Activity中实现它。在Activity中创建适配器示例时,传递该接口沿着并在适配器类中的视图的单击事件上,使用要传递回Activity的数据调用接口的方法。
agxfikkp2#
首先你需要创建一个接口
然后在调用recyclerView适配器的类中,将其传递给recyclerView适配器,如下所示
最后在你的适配器这样做
并在适配器的on click事件中调用它,如下所示: