Plus/Minus 带有计数器的按钮,但计数器无法正常工作
Plus/Minus button with a counter but counter does not work properly
我有 2 个按钮和一个 TextView,用于根据按下加号或减号按钮的次数更新计数器。
但是,问题是:(例如)当我按“+”按钮到 4 并在按“-”按钮后下降到 3 时。然后,当我再次尝试按下“+”(添加)按钮时,它会跳到 5 而不是 4。(即,从上次按下“+”按钮时起,计数器继续加 1。
这是实现 ImageButtons 和 TextView 监听器的适配器class
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
//inflate layout flavor_item.xml
View view = LayoutInflater.from(context).inflate(R.layout.flavor_item, container, false);
//initialize UID views from flavor_item.xml
ImageView imageIv = view.findViewById(R.id.imageIv);
TextView flavorTv = view.findViewById(R.id.flavorTv);
TextView quantityTv = view.findViewById(R.id.quantityTv);
ImageButton minusbutton = (ImageButton) view.findViewById(R.id.minusbutton);
ImageButton plusbutton = (ImageButton) view.findViewById(R.id.plusbutton);
//getting data
DashboardFlavorModel model = modelArrayList.get(position);
String title = model.getTitle();
int image = model.getImage();
String qty = model.getQuantity();
//setting data
imageIv.setImageResource(image);
flavorTv.setText(title);
quantityTv.setText(qty);
//plusbutton listener
plusbutton.setOnClickListener(new View.OnClickListener() {
int count = Integer.parseInt(model.getQuantity());
@Override
public void onClick(View view) {
count++;
model.setQuantity(""+count);
quantityTv.setText(""+count);
}
});
//listener
minusbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int i = Integer.parseInt(model.getQuantity());
if (i > 0) {
i--;
model.setQuantity(""+i);
quantityTv.setText(""+i);
} else{
Snackbar.make(view,"Cannot have < 0 QTY",Snackbar.LENGTH_SHORT).setAction("RETRY", new View.OnClickListener() {
@Override
public void onClick(View view) {
model.setQuantity("0");
quantityTv.setText(model.getQuantity());
}[![enter image description here][1]][1]
}).show();
}
}
});
(注意***)我尝试使用 getter 和 setter 检查计数器以检查它是否有效并且确实有效所以我不知道为什么在“-”之后按“+” " 它不会只是从“-”按钮后的值 +1。
试试放
int count = Integer.parseInt(model.getQuantity());
在加号按钮 onclicklistener 的 onClick 内部
我有 2 个按钮和一个 TextView,用于根据按下加号或减号按钮的次数更新计数器。
但是,问题是:(例如)当我按“+”按钮到 4 并在按“-”按钮后下降到 3 时。然后,当我再次尝试按下“+”(添加)按钮时,它会跳到 5 而不是 4。(即,从上次按下“+”按钮时起,计数器继续加 1。
这是实现 ImageButtons 和 TextView 监听器的适配器class
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
//inflate layout flavor_item.xml
View view = LayoutInflater.from(context).inflate(R.layout.flavor_item, container, false);
//initialize UID views from flavor_item.xml
ImageView imageIv = view.findViewById(R.id.imageIv);
TextView flavorTv = view.findViewById(R.id.flavorTv);
TextView quantityTv = view.findViewById(R.id.quantityTv);
ImageButton minusbutton = (ImageButton) view.findViewById(R.id.minusbutton);
ImageButton plusbutton = (ImageButton) view.findViewById(R.id.plusbutton);
//getting data
DashboardFlavorModel model = modelArrayList.get(position);
String title = model.getTitle();
int image = model.getImage();
String qty = model.getQuantity();
//setting data
imageIv.setImageResource(image);
flavorTv.setText(title);
quantityTv.setText(qty);
//plusbutton listener
plusbutton.setOnClickListener(new View.OnClickListener() {
int count = Integer.parseInt(model.getQuantity());
@Override
public void onClick(View view) {
count++;
model.setQuantity(""+count);
quantityTv.setText(""+count);
}
});
//listener
minusbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int i = Integer.parseInt(model.getQuantity());
if (i > 0) {
i--;
model.setQuantity(""+i);
quantityTv.setText(""+i);
} else{
Snackbar.make(view,"Cannot have < 0 QTY",Snackbar.LENGTH_SHORT).setAction("RETRY", new View.OnClickListener() {
@Override
public void onClick(View view) {
model.setQuantity("0");
quantityTv.setText(model.getQuantity());
}[![enter image description here][1]][1]
}).show();
}
}
});
(注意***)我尝试使用 getter 和 setter 检查计数器以检查它是否有效并且确实有效所以我不知道为什么在“-”之后按“+” " 它不会只是从“-”按钮后的值 +1。
试试放
int count = Integer.parseInt(model.getQuantity());
在加号按钮 onclicklistener 的 onClick 内部