如何在 RecyclerView 适配器中获取第二个模型的位置
Posted
技术标签:
【中文标题】如何在 RecyclerView 适配器中获取第二个模型的位置【英文标题】:How can i get the position for second model in RecyclerView Adapter 【发布时间】:2020-12-12 14:20:57 【问题描述】:这是我的 RecyclerView 适配器代码
class RecyclerAdapterMain(
val product: ArrayList<ModelProductMain>,
val viewmodel: ViewModelRoom,
val newitem: List<ModelItemsNew>
) :
RecyclerView.Adapter<RecyclerAdapterMain.ViewHolder>()
class ViewHolder(itemview: View) : RecyclerView.ViewHolder(itemview)
val title: TextView = itemview.product_txt
val price: TextView = itemview.price_product
val imageproduct: ImageView = itemview.product_image
val btn_add_product: Button = itemview.btn_add_product
val amount_value: TextView = itemview.amount_value
val button_remove_product: Button = itemview.button_remove_product
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder
val layoutview =
LayoutInflater.from(parent.context).inflate(R.layout.product_items, parent, false)
return ViewHolder(layoutview)
override fun getItemCount(): Int = product.size
override fun onBindViewHolder(holder: ViewHolder, position: Int)
val products = product[position]
holder.title.text = products.title
holder.price.text = products.price.toString()
Picasso.get().load(products.image).into(holder.imageproduct)
holder.itemView.setOnClickListener
val bundle = Bundle()
val myfragment = ItemDetailsfragment()
myfragment.arguments = bundle
val activity = it.context as AppCompatActivity
activity.supportFragmentManager.beginTransaction()
.replace(R.id.homepage, myfragment)
.commit()
bundle.putString("title", products.title)
bundle.putString("price", products.price.toString())
bundle.putString("image", products.image.toString())
holder.amount_value.visibility = View.GONE
holder.button_remove_product.visibility = View.GONE
holder.btn_add_product.setOnClickListener
holder.amount_value.visibility = View.VISIBLE
holder.button_remove_product.visibility = View.VISIBLE
holder.amount_value++
问题是我希望按下按钮时产品的数量会增加......为此我需要每个项目的位置,但我的产品的第一个模型(覆盖 fun getItemCount(): Int = product. size ) 获得了我的新模型所需的位置 (val newitem: List )。
我尝试了这段代码 val productpos = newitem.position 并给我错误大小为 1 并且索引也是 1 ... 我不知道如何解决它。刚才我需要一个新模型的位置。如何获得新职位?
【问题讨论】:
【参考方案1】:试试这个:
val productpos = newitem.get(position)
然后得到总大小:
override fun getItemCount(): Int = product.size + newitem.size
【讨论】:
感谢兄弟的回答...但是给我这个错误 (java.lang.IndexOutOfBoundsException: Index: 1, Size: 1)以上是关于如何在 RecyclerView 适配器中获取第二个模型的位置的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Recyclerview中单击的适配器位置获取数据?
如何使用适配器为recyclerview从字符串数组列表中的元素获取字符串
从片段中获取意图值后,我如何在 recyclerview 项目中实现单击