如何使用 Elegant Button Library 在 Cart Adapter 中增加或减少商品数量?

问题描述

我正在尝试使用 ElegantButtonLibrary 设置数量按钮,所以我想要的是当我增加或减少 CartAdapter 中的项目数量总价会立即更新,我该怎么做?

我希望有人能帮助我,提前致谢。

check the image here

MyCartAdapter 代码

public class CartAdapter extends RecyclerView.Adapter<CartAdapter.ViewHolder>{

private Context context;
private List <AllItem> allItemList;
private ElegantNumberButton quantityButton;

private AllItem allItem;

private FirebaseFirestore db;
private FirebaseAuth firebaseAuth;



private ItemRemoved itemRemoved;

public CartAdapter(Context context,List <AllItem> allItemList,ItemRemoved itemRemoved) {
    this.context = context;
    this.allItemList = allItemList;
    this.itemRemoved = itemRemoved;

    db = FirebaseFirestore.getInstance();

    firebaseAuth = FirebaseAuth.getInstance();

}

@NonNull
@Override
public CartAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {

    View view = LayoutInflater.from(context).inflate(R.layout.single_card_item,parent,false);

    return new ViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull CartAdapter.ViewHolder viewHolder,int position) {

    viewHolder.cardName.setText(allItemList.get(position).getName());
    viewHolder.cardSize.setText(allItemList.get(position).getSize());
    viewHolder.cardPrice.setText(allItemList.get(position).getPrice() + " $");

    Glide.with(context).load(allItemList.get(position).getimage_url()).into(viewHolder.cardImage);

    viewHolder.cardRemove.setonClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            db.collection("User").document(firebaseAuth.getCurrentUser().getUid())
                    .collection("Cart").document(allItemList.get(position).getDocumentId())
                    .delete().addOnCompleteListener(new OnCompleteListener <Void>() {
                @Override
                public void onComplete(@NonNull Task <Void> task) {

                    if(task.isSuccessful()){

                        allItemList.remove(allItemList.get(position));

                        notifyDataSetChanged();

                        itemRemoved.onItemRemoved(allItemList);

                        Toast.makeText(context,"Item removed",Toast.LENGTH_SHORT).show();
                    }else {

                        Toast.makeText(context,task.getException().getMessage(),Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }
    });
}

@Override
public int getItemCount() {
    return allItemList.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {

    private ImageView cardImage,cardRemove;
    private TextView cardName,cardPrice,cardSize;
    private ElegantNumberButton quantityButton;

    public ViewHolder(@NonNull View itemView) {
        super(itemView);

        cardImage = itemView.findViewById(R.id.card_item_image);
        cardName = itemView.findViewById(R.id.card_item_name);
        cardPrice = itemView.findViewById(R.id.card_item_price);
        cardRemove = itemView.findViewById(R.id.card_item_remove);

        cardSize = itemView.findViewById(R.id.card_item_size);
        quantityButton = itemView.findViewById(R.id.quantity_btn);
    }
}

public interface ItemRemoved{

    void onItemRemoved(List <AllItem> allItemList);
   } 
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...