Я могу увеличить количество, используя приведенный ниже код, но у меня проблема с ним. Он увеличивается только один раз и уменьшается один раз, а когда я нажимаю add
, он отлично увеличивается, но когда дело доходит до уменьшения, он уменьшает 2 значения за раз
пример add-> 1 + 1 = 2, но суб -> 2-1 = 0
CartFragment
cartAdapter = new CartAdapter(getContext(), cartData.getProducts(), this);
LinearLayoutManager mLayoutManager1 = new LinearLayoutManager(getContext(), RecyclerView.VERTICAL, false);
productCartRecyclerview.setLayoutManager(mLayoutManager1);
productCartRecyclerview.setAdapter(cartAdapter);
Слушатель
@Override
public void addQuantity(int position, TextView quantity) {
productQuantity= cartData.getProducts().get(position).getQuantity();
productQuantity++;
quantity.setText(""+productQuantity);
Toast.makeText(getContext(), ""+productQuantity, Toast.LENGTH_SHORT).show();
}
@Override
public void subQuantity(int position, TextView quantity) {
productQuantity= cartData.getProducts().get(position).getQuantity();
productQuantity--;
quantity.setText(""+productQuantity);
Toast.makeText(getContext(), ""+productQuantity, Toast.LENGTH_SHORT).show();
}
Адаптер корзины
public class CartAdapter extends RecyclerView.Adapter<CartAdapter.MyViewHolder> {
private Context context;
private ArrayList<Product> myArrayList;
private QuantityManipulation quantityManipulation;
public CartAdapter(Context context, ArrayList<Product> myArrayList,QuantityManipulation quantityManipulation ) {
this.context = context;
this.myArrayList = myArrayList;
this.quantityManipulation=quantityManipulation;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.item_cart,parent,false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
Product product = myArrayList.get(position);
holder.cartTitle.setText(product.getProductName());
holder.primaryModifier.setText(""+product.getModifier1());
holder.secondaryModifier.setText(""+product.getModifier2());
// holder.cartSize.setText(product.get);
holder.cartPrice.setText(""+product.getProductBasePrice());
holder.cartQunatity.setText(""+product.getQuantity());
Picasso.get().load(product.getImageUrl()).into(holder.cartImage);
/* holder.add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int quantity;
quantity = product.getQuantity();
quantity++;
holder.cartQunatity.setText(""+quantity);
}
});
holder.sub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int quantity;
quantity = product.getQuantity();
if (product.getQuantity() > 1){
quantity--;
holder.cartQunatity.setText(""+quantity);
}
Toast.makeText(context, ""+quantity, Toast.LENGTH_SHORT).show();
}
});*/
}
@Override
public int getItemCount() {
return myArrayList.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
TextView cartTitle;
TextView primaryModifier;
TextView cartPrice;
TextView cartQunatity;
TextView cartSize;
ImageView cartImage;
TextView secondaryModifier;
ImageView add;
ImageView sub;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
cartTitle =itemView.findViewById(R.id.txtcartTitle);
primaryModifier =itemView.findViewById(R.id.primarymodifier);
secondaryModifier = itemView.findViewById(R.id.secondaryModifier);
cartSize =itemView.findViewById(R.id.txtcartSize);
cartQunatity =itemView.findViewById(R.id.txtCartQuntity);
cartPrice =itemView.findViewById(R.id.txtCartPrice);
cartImage =itemView.findViewById(R.id.cartImageView);
add = itemView.findViewById(R.id.textQuntityAdd);
sub = itemView.findViewById(R.id.textQuntitySub);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
quantityManipulation.addQuantity(getAdapterPosition(),cartQunatity);
}
});
sub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
quantityManipulation.subQuantity(getAdapterPosition(),cartQunatity);
}
});
}
}
}
Интерфейсный прослушиватель
public interface QuantityManipulation {
void addQuantity(int position, TextView quantity);
void subQuantity(int position, TextView quantity);
}