如何增加或减少购物车中的物品?

时间:2020-04-19 11:21:41

标签: android android-studio

我的购物车有一些问题,我一一写下。

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 个答案:

答案 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();
}

希望这对您有帮助...