我在回收站视图中工作,我有递增和递减按钮。我的条件是,最大值我不能添加 10 和最小值 0。当我在回收站视图中单击第一行项目的增量按钮时,它正在添加 1,但是当我在回收站视图中单击第二行项目时,它首先影响列表项也是如此。假设 item1 变为 1 plus。
当我做任何递增和递减时,它不应该影响 RecyclerView 中的其他行项目。
int counter = 0;
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder,final int position) {
final ParseObject parseObject = arrayList.get(position);
boolean like = true, dislike = true;
if (holder instanceof MemberViewHolder) {
if (arrayList.size() > 0) {
((MemberViewHolder) holder).txtIncrement.setOnClickListener(new TextView.OnClickListener() {
@Override
public void onClick(View view) {
counter += 1;
((MemberViewHolder) holder).txtCounter.setText(counter+"");
}
});
((MemberViewHolder) holder).txtDecrement.setOnClickListener(new TextView.OnClickListener() {
@Override
public void onClick(View view) {
if(counter == 0){
}else{
counter -= 1;
((MemberViewHolder) holder).txtCounter.setText(counter+"");
}
}
});
}
}
当从第 1 项递减时,它也在递减第 2 行中的值。我想保留每个项目的值。
这是我如何做到的:
首先创建一个int[]类型的成员变量
private int[] counter = new int[10];
这里我给数组一个默认大小 10 。
重要提示:如果您尝试将 item 增加到索引 10 以上,这将使您的应用程序崩溃。为避免在填充 arrayList 时需要为其指定 arrayList 的大小(可能在适配器构造函数中)。
现在在您的 onBindViewHolder()
:
((MemberViewHolder) holder).txtIncrement.setOnClickListener(new TextView.OnClickListener() {
@Override
public void onClick(View view) {
counter[position] += 1;
((MemberViewHolder) holder).txtCounter.setText(counter[position]+"");
}
});
((MemberViewHolder) holder).txtDecrement.setOnClickListener(new TextView.OnClickListener() {
@Override
public void onClick(View view) {
if(counter[position] == 0){
}else{
counter[position] -= 1;
((MemberViewHolder) holder).txtCounter.setText(counter[position]+"");
}
}
});
((MemberViewHolder) holder).txtCounter.setText(counter[position]+"");
希望这可以帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句