这是kotlin代码,我有一个包含ArrayList
个元素的订单购物车,而我想在这里尝试的是默认情况下{{1}中将数量设置为1我有一些按钮可以增加和减少它。因此,每当我尝试使用这些按钮增加或减少值时,必须更改每一行EditText
的总金额。但是,现在一切正常,就像我每次递增或递减值TextView
的总金额连续更改,但是当我向下或向上滚动时,TextView
中的值消失,并重新设置为默认值一样值。
TextView
答案 0 :(得分:0)
您需要在KartListAdapter
中包含数量数组以保存数量。这些值消失了,这是错误的显示,因为视图在RecyclerView
中被回收了。因此,您需要将每行的状态保存在单独的ArrayList中,然后从那里显示数量。
因此,我想建议像ArrayList
那样在您的KartListAdapter
中有一个单独的var quantityList: List<Int>
。
然后,当数量增加或减少时,将值保留在quantityList
中。使用零初始化此ArrayList,并且其大小等于传递给适配器的arrayList
。
现在在bindView
函数中,像这样在数量文本字段中设置文本。
holder.itemsqty.text = quantityList[position];
内部人员onBindViewHolder
在更新数量时,只需增大和减小quantityList
中的值,然后调用notifyDataSetChanged
以进行{{1}中所需的更改}。
RecyclerView
该代码未经测试,由于语法错误,可能无法正常工作。但是,我认为您可以将增加或减少的数量存储在一个单独的列表中,然后在holder.btnIncrease.setOnClickListener() {
quantityList[position] = quantityList[position] + 1;
notifyDataSetChanged();
}
holder.btnDecrease.setOnClickListener() {
if(quantityList[position] > 0) {
quantityList[position] = quantityList[position] - 1;
notifyDataSetChanged();
}
}
中填充视图。
希望有帮助!