如何增加或减少购物车中的商品?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何增加或减少购物车中的商品?相关的知识,希望对你有一定的参考价值。
我的购物车出现了一些问题,我一一写下来。
1.当我想增加商品数量时,购物车中的商品计数器是通用的,也就是说,如果第一件商品是3,那么下一件商品就会从4开始,这是什么问题?
2.它还为大家写了最新商品的价格。
3.当我确认最终购买时,如何清空购物车?
4.那我怎么计算商品的总价呢?
卡适配器(FacultyAdapter)
dbhandler mydb;
int a=0;
int counter=1;
int baseprice=1;
private Context context;
private String mes="";
private List<Faculty> facultyList;
public FacultyAdapter(Context context, List<Faculty> facultyList) {
this.context = context;
this.facultyList=facultyList;
}
@NonNull
@Override
public FacultyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.itemcard,parent,false);
RecyclerView.LayoutParams lp = new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
view.setLayoutParams(lp);
return new FacultyViewHolder(view);
}
/////////////////////////////////////////////////
@Override
public void onBindViewHolder(@NonNull final FacultyViewHolder holder, int position) {
final Faculty s = facultyList.get(position);
holder.title.setText(s.getName());
holder.price.setText(s.getPrice());
baseprice=Integer.parseInt(s.getPrice());
String photoname=s.getImage();
Glide
.with(context)
.load( Urls.image+photoname)
.placeholder(R.mipmap.ic_launcher_round)
.error(R.drawable.logo)
.into(holder.img);
mydb=new dbhandler(context);
holder.remove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String e=s.getId().toString();
mydb.delete(e);
notifyDataSetChanged();
}
});
增减键
holder.inc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int tprice=0;
Increment();
holder.count.setText(""+counter);
tprice= baseprice * counter;
holder.price.setText(""+tprice);
}
});
holder.dec.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int tprice=0;
Deccrement();
holder.count.setText(""+counter);
tprice= baseprice * counter;
holder.price.setText(""+tprice);
}
});
}
////////////////////////////////////////
@Override
public int getItemCount() {
return facultyList.size();
}
////////////////////////////////
public class FacultyViewHolder extends RecyclerView.ViewHolder {
TextView title;
TextView price,count;
CircleImageView img;
CardView card;
ImageButton remove,inc,dec;
private FacultyViewHolder(View itemView) {
super(itemView);
title = itemView.findViewById(R.id.txt_list_item_title);
price = itemView.findViewById(R.id.txt_list_item_des);
remove = itemView.findViewById(R.id.remove_item);
img=itemView.findViewById(R.id.image_cart);
inc=itemView.findViewById(R.id.increment);
dec=itemView.findViewById(R.id.decrement);
count=itemView.findViewById(R.id.count);
card = (CardView) itemView.findViewById(R.id.card);
}
}
增减函数
private void Increment(){
counter++;
}
private void Deccrement(){
if (counter==1)
return;
else {
counter--;
}
}
}
答案
问题1和2 int counter=1; int baseprice=1
不应该是类变量,为此你可以在你的模型类中建立一个变量,然后从你的模型中取值。
问题3.你是如何通过Rest API或SQLLite数据库获取数据到适配器的?你如何通过Rest API或SQLLite数据库获取数据到适配器。如果你是通过Rest API获取数据,那么它应该在你的服务器端处理,如果它在你的SQLlite数据库中,那么 db.execSQL("delete from "+ TABLE_NAME);
问题4:如果你是在模型类中节省价格,那么
long sum = 0;
for (Faculty m : facultyList) { // or whatever your local variable is
sum += m.ttotal();
}
希望对你有所帮助...
以上是关于如何增加或减少购物车中的商品?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Flutter 中的 Provider 增加电子商务购物车中的商品数量