这是我的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++
}
}
}
问题是我想当按下按钮时,产品的数量会增加。。。为此,我需要每个项目的位置,但需要我的产品的第一个型号(override fun getItemCount():Int=product)。尺寸)已获得新型号所需的位置(val newitem:List)。
我尝试了这个代码val productpos=newitem.position,给我的错误,大小是1,索引也是1...我不知道如何修复它。刚才我需要一个新模型的位置。如何获得一个新的位置?
试试这个:
val productpos = newitem.get(position)
然后得到总尺寸:
override fun getItemCount(): Int = product.size + newitem.size
在旧代码中,当我使用与自定义适配器时,我可以使用此代码获取项目。 现在我正在实现。如何从<代码>回收视图中获取项目。适配器?
假设我有这个数组: 我想得到第二个< code>99的位置,类似于: 然而,中的第二个参数只是告诉从哪里开始搜索。有没有任何内置函数来实现这一点?如果没有,你会怎么做? 谢谢
AdapterClass: 提前感谢你的帮助。
我有RecyclerView,每个行布局都有一个ImageView和一个TextView。在 RecyclerViewAdapter 的 ViewHolder 中,我将单击侦听器设置为 在那个点击侦听器中,我正在更改布尔标志,以便它可以显示一个项目被选中或not.Depending它的值,我想通过检查遍历整个ArrayList
> 从创建的片段中更新,将新数据设置为adapter,然后调用;但没有奏效。 像其他人一样创建一个新适配器,它对他们起作用,但对我没有任何改变: 在中创建一个更新数据的方法,如下所示: 问题是gridView的布局如下所示: 然后我只是删除了并将作为父布局。
试图弄清楚更新的适配器有什么问题。 在我得到一个新的产品列表后,我尝试: > 从创建的片段中更新,将新数据设置到adapter,然后调用;但没有奏效。 像其他人一样创建一个新适配器,它对他们有效,但对我没有任何改变: 在中创建一个更新数据的方法,如下所示: 然后每当我想要更新数据列表时,我就调用这个方法;但没有奏效。 检查是否可以以任何方式修改recyclerView,并且我尝试至少删除一个项目: