购物车实现流程


//been

public class User {

    private String name;
    private int Price;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getPrice() {
        return Price;
    }

    public void setPrice(int price) {
        Price = price;
    }
}

//Adapter


public class CartAdapter extends BaseAdapter {
     private MainActivity mContext;
         private List<User> mList;
        private int aa = 1;
         public CartAdapter(MainActivity context, List<User> list) {
             mContext = context;
             mList = list;
         }

         @Override
         public int getCount() {
             return mList.size();
         }

         @Override
         public Object getItem(int position) {
             return null;
         }

         @Override
         public long getItemId(int position) {
             return 0;
         }

         @Override
         public View getView(final int position, View convertView, ViewGroup parent) {
             ViewHolder holder=null;
             if(convertView==null){
                 convertView=View.inflate(mContext, R.layout.cart_item,null);
                 holder=new ViewHolder();

                 holder.name = (TextView)convertView.findViewById(R.id.cart_item_name1);
                 holder.price = (TextView)convertView.findViewById(R.id.cart_item_price1);
                 holder.image = (ImageView)convertView.findViewById(R.id.cart_item_image1);
                 holder.shu = (TextView)convertView.findViewById(R.id.cart_item_shushu);
                 holder.jia = (Button)convertView.findViewById(R.id.cart_item_jiajia);
                 holder.jian = (Button)convertView.findViewById(R.id.cart_item_jianjian);
                 holder.shu = (TextView)convertView.findViewById(R.id.cart_item_shushu);
                 holder.num = (TextView)convertView.findViewById(R.id.cart_item_numnum);
                 holder.DGZJ = (TextView)convertView.findViewById(R.id.cart_item_zongji1);
                 holder.delete1 = (TextView)convertView.findViewById(R.id.cart_item_delete1);
                 convertView.setTag(holder);
             }else{
                 holder=(ViewHolder)convertView.getTag();
             }
                 holder.name.setText(mList.get(position).getName());
                 holder.price.setText(mList.get(position).getPrice()+"");

             holder.DGZJ.setText("共計1件商品,共計"+mList.get(position).getPrice()+"元");
             final ViewHolder finalHolder = holder;
             final ViewHolder finalHolder1 = holder;
             final ViewHolder finalHolder2 = holder;
             final ViewHolder finalHolder3 = holder;





             holder.jia.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
                     //获取当前的数量
                     int count =Integer.parseInt(finalHolder3.shu.getText().toString()) ;
                     //每点击一次数量加一
                     ++count;
                     //设置item中对应的数值
                     finalHolder.shu.setText(""+count);
                     finalHolder1.num.setText("X"+count);
                     //计算当前数量商品的总价
                     int b=mList.get(position).getPrice();
                     float c = b*count;
                     //设置商品总价
                     finalHolder2.DGZJ.setText("共计"+count+"件商品,共计"+c+"元");
                    //获取当前Fragment所在的Activity


                             //利用得到的Fragment调用在Fragment中写的方法
                             //传的为正负值,便于累计计算
                     mContext.setData(1, (int) b);



                 }
             });

             holder.jian.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
                     int count =Integer.parseInt(finalHolder3.shu.getText().toString()) ;
                     if(count>0)
                     {
                         --count;
                         finalHolder.shu.setText(""+count);
                         finalHolder1.num.setText("X"+count);
                         int b=mList.get(position).getPrice();
                         float c = b*count;
                         finalHolder2.DGZJ.setText("共计"+count+"件商品,共计"+c+"元");


                         mContext.setData(-1, (int) -b);


                     }else if(count <= 0){
                         Toast.makeText(mContext,"最小数量",Toast.LENGTH_LONG).show();
                     }
                 }
             });

             holder.delete1.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
                     Toast.makeText(mContext,"点击删除",Toast.LENGTH_LONG).show();

                             float b=mList.get(position).getPrice();
                     mContext.setData(-1, (int) -b);

                     mContext.setDelete(position);

                 }
             });




             return convertView;
         }
         class ViewHolder{
             Button jia,jian;

                TextView name,price,shu,num,DGZJ,delete1,jiajian;
             ImageView image;
         }
}


//mainActivity


public class MainActivity extends AppCompatActivity {
    private List<User> list;
    private CartAdapter adapter;
    private ListView listView;
    private TextView spzj;
    private int sum;
    private int price;
    private Button jiesuan;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = (ListView)findViewById(R.id.cart_lisrview);
        spzj = (TextView)findViewById(R.id.cart_spzj);
        jiashuju();
    }
    private void jiashuju() {
        list = new ArrayList<>();
        User user = new User();
        user.setName("百达翡丽");
        user.setPrice(1200);
        list .add(user);
        adapter = new CartAdapter(this, list);
        listView.setAdapter(adapter);
        //给控件设置初始值
        for(int i = 0; i <list.size();i++){
            price+= list.get(i).getPrice();
        }
        sum = list.size();
        spzj.setText("共计"+sum+"件商品,共计"+price+"元");

    }
    //自定义的方法,接收Adapter传过来的数据
    public void setData(int a ,int b){
        sum+=a;
        price+=b;
        spzj.setText("共计"+sum+"件商品,共计"+price+"元");
    }
    //自定义的方法,接收Adapter传过来的数据
    public void setDelete(int a){
        list.remove(a);
        adapter.notifyDataSetChanged();


    }
}

//布局文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal"
        android:background="#FF5001"
        android:gravity="center"
        android:text="购物车"
        android:textSize="25sp"
        android:textColor="#ffff"
        android:layout_gravity="center"
        />

    <TextView
        android:id="@+id/cart_tishi"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:text="购物车空空如也"
        android:layout_below="@id/title"
        android:visibility="gone"
        />

    <ListView
        android:id="@+id/cart_lisrview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/title"
        android:layout_above="@id/end"

        ></ListView>

    <LinearLayout
        android:id="@+id/end"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/cart_spzj"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="3"
            android:gravity="center"
            android:text="共0件商品,共计0元"
            />
        <Button
            android:id="@+id/cart_jiesuan"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="去结算"
            android:onClick="JS"
            android:textColor="#ffff"
            android:background="#FF5001"
            />

    </LinearLayout>

</RelativeLayout>

//irem

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="90dp"
        android:orientation="horizontal"
        android:gravity="center_vertical"
        >
        <ImageView
            android:id="@+id/cart_item_image1"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_marginLeft="10dp"
            android:layout_height="80dp" />
        <TextView
            android:text="XXXXXXXXXXXXXXXXXX"
            android:textSize="18sp"
            android:id="@+id/cart_item_name1"
            android:layout_width="0dp"
            android:layout_height="80dp"
            android:layout_marginLeft="5dp"
            android:layout_weight="3"/>
        <LinearLayout
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_marginLeft="5dp"
            android:orientation="vertical"
            android:layout_height="80dp">
            <TextView
                android:id="@+id/cart_item_price1"
                android:layout_width="match_parent"
                android:layout_height="20dp"
                android:textSize="12sp"
                android:text="¥65000.00"
                android:textColor="#FF5001"
                android:layout_marginTop="5dp"/>
            <TextView
                android:id="@+id/cart_item_numnum"
                android:layout_width="match_parent"
                android:layout_height="20dp"
                android:textSize="12sp"
                android:text="X1"
                android:layout_marginTop="5dp"/>
        </LinearLayout>
    </LinearLayout>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="20dp">
        <TextView
            android:id="@+id/cart_item_zongji1"
            android:layout_width="wrap_content"
            android:layout_height="20dp"
            android:layout_alignParentRight="true"
            android:text="共计1件商品,共计65000.00元"
            />
    </RelativeLayout>
    <RelativeLayout
        android:layout_width="match_parent"
        android:gravity="center_vertical"
        android:layout_height="40dp">
<TextView
    android:id="@+id/cart_item_delete1"
    android:layout_width="60dp"
    android:layout_height="30dp"
    android:text="删除"
    android:gravity="center"
    android:layout_marginLeft="20dp"
    android:background="@drawable/cart_item"
    />
        <Button
            android:id="@+id/cart_item_jiajia"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:gravity="center"
            android:text="+"
            android:clickable="true"
            android:layout_marginEnd="10dp"
            android:layout_marginRight="10dp"
            android:layout_alignParentRight="true"
            android:background="@drawable/cart_item"
            />
        <TextView
            android:id="@+id/cart_item_shushu"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:gravity="center"
            android:text="1"
            android:layout_marginEnd="40dp"
            android:layout_marginRight="40dp"
            android:layout_alignParentRight="true"
            android:background="@drawable/cart_item"
            />
        <Button
            android:id="@+id/cart_item_jianjian"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:gravity="center"
            android:text="-"
            android:clickable="true"
            android:layout_marginEnd="70dp"
            android:layout_marginRight="70dp"
            android:layout_alignParentRight="true"
            android:background="@drawable/cart_item"
            />


    </RelativeLayout>

</LinearLayout>

//drawable

<?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <!-- 实心 -->
        <solid android:color="@android:color/white"/>
        <!-- 边框 -->
        <stroke
            android:width="0.5dp"
            android:color="#000"/>
        <!-- 圆角 -->
        <corners android:radius="3dp"/>
        <!-- 边距 -->
        <padding
            android:top="2dp"
            android:bottom="2dp"
            android:left="6dp"
            android:right="6dp"/>
</shape>



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值