gpt4 book ai didi

android - 为什么最大长度过滤器不起作用?安卓

转载 作者:行者123 更新时间:2023-12-02 13:40:22 26 4
gpt4 key购买 nike

当我按下一个按钮时,我会有一个按钮,数量(我产品的数量)将增加一。
并为此值设置一个最大长度。
但是我的代码没有过滤金额。
这是我的适配器:




class RecyclerAdapterMain(


val product: List<Roomtable>,
val context: Context


) :
RecyclerView.Adapter<RecyclerAdapterMain.ViewHolder>() {


val viewModel: ViewModelRoom by lazy {

ViewModelProvider.AndroidViewModelFactory(Application()).create(ViewModelRoom::class.java)

}


inner 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

var 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

Picasso.get().load(products.image).into(holder.imageproduct)

holder.amount_value.text = products.amount.toString()


val anim: Animation =
AnimationUtils.loadAnimation(this.context, R.anim.anim_for_btn_zoom_out)


holder.btn_add_product.setOnClickListener {

// this will start an animation on addButton
it.startAnimation(anim)

holder.button_remove_product.visibility = View.VISIBLE


holder.amount_value.visibility = View.VISIBLE

products.amount++.toString()

holder.amount_value.text = products.amount.toString()

// this is lengthmax filter but dosen't work

holder.amount_value.filters = arrayOf(LengthFilter(5))


// this is insert the selected product into roomdatabase

viewModel.insertItemToCart(
CartTable(
null,
products.title,
products.price,
products.image,
products.amount
)
)

}
如何正确过滤我的数量号码?
我的代码有什么问题?
先谢谢了 。

最佳答案

您需要做的是在onClick之后通知RecyclerView有关更改。您可以使用notifyDatasetChanged()做到这一点。如果使用数据类定义“产品”,则可以使用复制机制:

override fun onBindViewHolder(holder: ViewHolder, position: Int) {


val products = product[position]


holder.title.text = products.title

holder.price.text = products.price

Picasso.get().load(products.image).into(holder.imageproduct)

holder.amount_value.text = products.amount.toString()


val anim: Animation =
AnimationUtils.loadAnimation(this.context, R.anim.anim_for_btn_zoom_out)


holder.btn_add_product.setOnClickListener {

// this will start an animation on addButton
it.startAnimation(anim)

holder.button_remove_product.visibility = View.VISIBLE


holder.amount_value.visibility = View.VISIBLE

val changedProducts = products.copy(amount = products.amount++)
product[holder.adapterPosition] = changedProducts

holder.amount_value.text = products.amount.toString()

// this is lengthmax filter but dosen't work

holder.amount_value.filters = arrayOf(LengthFilter(5))


// this is insert the selected product into roomdatabase

viewModel.insertItemToCart(
CartTable(
null,
changedProducts.title,
changedProducts.price,
changedProducts.image,
changedProducts.amount
)
)
notifyDatasetChanged()
}

关于android - 为什么最大长度过滤器不起作用?安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64097666/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com