问题描述
我正在尝试使用 ElegantButtonLibrary 设置数量按钮,所以我想要的是当我增加或减少 CartAdapter 中的项目数量时总价会立即更新,我该怎么做?
我希望有人能帮助我,提前致谢。
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 (将#修改为@)