我的购物车有一些问题,我一一写下。
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--;
}
}
}
答案 0 :(得分:0)
问题1和2 int counter=1; int baseprice=1
不应是类变量,因为您可以在模型类中创建变量并从模型中检索值。
问题3.如何通过Rest API或SQLLite数据库将数据获取到适配器中。如果您正在休息,那么它应该在服务器端处理,并且如果在SQLlite数据库中,则db.execSQL("delete from "+ TABLE_NAME);
问题4:如果您要在模型课程中节省价格,则
long sum = 0;
for (Faculty m : facultyList) { // or whatever your local variable is
sum += m.ttotal();
}
希望这对您有帮助...