仿淘宝购物车

activity_main

<?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" >

<LinearLayout
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:background="@color/white"
android:orientation="horizontal" >

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_marginLeft="10dp"
    android:layout_weight="1"
    android:gravity="center_vertical"
    android:orientation="horizontal" >

    <CheckBox
        android:id="@+id/checkbox_select"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:text="全选"
        android:textColor="@color/gry_666666"
        android:textSize="20dp" />
</LinearLayout>

<LinearLayout
    android:id="@+id/clear"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_marginRight="20dp"
    android:gravity="center_vertical|right"
    android:orientation="horizontal" >

    <CheckBox
        android:layout_width="12dp"
        android:layout_height="12dp" />
        <!--android:background="@drawable/clear"-->


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:text="清空购物车"
        android:textColor="#b61d1d"
        android:textSize="20dp" />
</LinearLayout>
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/layout1"
android:layout_marginBottom="50dp"
android:orientation="vertical" >

<View
    android:layout_width="match_parent"
    android:layout_height="0.1dp"
    android:background="@color/divider_color" />

<ListView
    android:id="@+id/finance_list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="false"
    android:divider="@color/lucency" />

<!--<include-->
    <!--layout="@layout/include_refresh"-->
    <!--android:visibility="gone" />-->
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:orientation="horizontal" >

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="2"
    android:background="@color/gry_999999"
    android:gravity="center_vertical"
    android:orientation="horizontal" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:gravity="center"
        android:orientation="horizontal" >

        <CheckBox
            android:id="@+id/checkbox_add"
            android:layout_width="wrap_content"
            android:clickable="false"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="合计:"
            android:textColor="@color/white"
            android:textSize="20dp" />

        <TextView
            android:id="@+id/integral_sum"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:text="0"
            android:textColor="@color/theme_color"
            android:textSize="15dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="积分"
            android:textColor="@color/white"
            android:textSize="15dp" />
    </LinearLayout>
</LinearLayout>

<TextView
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:background="@color/theme_color"
    android:gravity="center"
    android:text="结算"
    android:textColor="@color/white"
    android:textSize="20dp" />
</LinearLayout>

    </RelativeLayout>

list_shopping_cart_item

<?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:descendantFocusability="blocksDescendants"
              android:background="@color/white"
              android:orientation="vertical" >
    <View
        android:layout_width="match_parent"
        android:layout_height="0.1dp"
        android:background="@color/divider_color" />

    <LinearLayout
        android:id="@+id/layout5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:orientation="horizontal"
        android:padding="5dp" >

        <CheckBox
            android:id="@+id/ck_select"
            android:layout_width="wrap_content"
            android:focusable="false"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp" />

        <ImageView
            android:id="@+id/pic_goods"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="fitCenter"
            android:src="@mipmap/ic_launcher" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/id_goods"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="短袜男士星期 POLO棉袜潮男秋冬款礼盒装"
                android:textColor="@color/gry_999999"
                android:textSize="10dp" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:orientation="horizontal" >

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="颜色:"
                            android:textColor="@color/gry_999999"
                            android:textSize="12sp" />

                        <TextView
                            android:id="@+id/color_goods"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="黑色"
                            android:textColor="@color/gry_999999"
                            android:textSize="12sp" />
                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:orientation="horizontal" >

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="规格:"
                            android:textColor="@color/gry_999999"
                            android:textSize="12sp" />

                        <TextView
                            android:id="@+id/type_goods"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="普通"
                            android:textColor="@color/gry_999999"
                            android:textSize="12sp" />
                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:orientation="horizontal" >

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="所需积分"
                            android:textColor="@color/theme_color"
                            android:textSize="12sp" />

                        <TextView
                            android:id="@+id/integral_goods"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="1000"
                            android:layout_marginLeft="5dp"
                            android:textColor="@color/theme_color"
                            android:textSize="12sp" />
                    </LinearLayout>
                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="25dp"
                    android:layout_gravity="bottom"
                    android:layout_marginBottom="5dp"
                    android:layout_marginRight="5dp"
                    android:gravity="right"
                    android:orientation="horizontal" >

                    <LinearLayout
                        android:layout_width="80dp"
                        android:layout_height="25dp"
                        android:layout_gravity="right"
                        android:background="@color/white"
                        android:orientation="horizontal" >

                        <Button
                            android:id="@+id/minus"
                            android:layout_width="30dp"
                            android:layout_height="match_parent"
                            android:gravity="center"
                            android:focusable="false"
                            android:text="-"
                            android:textColor="@color/black" >
                        </Button>

                        <TextView
                            android:id="@+id/number"
                            android:layout_width="30dp"
                            android:layout_height="match_parent"
                            android:gravity="center"
                            android:inputType="number"
                            android:text="1"
                            android:textColor="@color/black" >
                        </TextView>

                        <Button
                            android:id="@+id/plus"
                            android:layout_width="25dp"
                            android:layout_height="match_parent"

                            android:gravity="center"
                            android:focusable="false"
                            android:text="+"
                            android:textColor="@color/black" >
                        </Button>
                    </LinearLayout>
                </LinearLayout>
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>

    <View
        android:layout_width="match_parent"
        android:layout_height="0.1dp"
        android:background="@color/divider_color" />

</LinearLayout>

ShoppingCartActivity

BaseActivity 什么都没有
public class ShoppingCartActivity extends BaseActivity {
    private List<Test> data;
    private ListView mListView;
    private ShoppingCartAdapter adapter;

    private RelativeLayout rlRefresh;
    private TextView tvRefresh;
    private ProgressBar barRefresh;
    private LinearLayout clear;
    private CheckBox checkBox_select_all;
    private CheckBox checkBox_add;
    private TextView integral_sum;
    private int sum = 0;
    private int[] sumIntegral;
    private Context context;
    private int showpage;
    private boolean isPermitFlag;


    protected void onCreate(Bundle bundle) {
        // TODO Auto-generated method stub
        super.onCreate(bundle);
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView() {
        context = this;
        showpage = 1;
        isPermitFlag = true;
        data = new ArrayList<Test>();
        // 测试数据
        data.add(new Test("id", "color", "type", "100"));
        data.add(new Test("id", "color", "type", "200"));
        data.add(new Test("id", "color", "type", "300"));
        data.add(new Test("id", "color", "type", "0"));
        data.add(new Test("id", "color", "type", "300"));
        data.add(new Test("id", "color", "type", "100"));
        data.add(new Test("id", "color", "type", "500"));
        data.add(new Test("id", "color", "type", "0"));
        data.add(new Test("id", "color", "type", "900"));

        adapter = new ShoppingCartAdapter(context, handler, data);

        sumIntegral = new int[data.size() + 1];

        checkBox_add = (CheckBox) findViewById(R.id.checkbox_add);
        integral_sum = (TextView) findViewById(R.id.integral_sum);
        clear = (LinearLayout) findViewById(R.id.clear);
        clear.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                data.clear();
                List<String> listclearalter= adapter.getclearlter();
                adapter.notifyDataSetChanged();
                integral_sum.setText(0 + "");
                checkBox_select_all.setChecked(false);
                checkBox_add.setClickable(false);
            }
        });
        checkBox_select_all = (CheckBox) findViewById(R.id.checkbox_select);
        checkBox_select_all.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                HashMap<Integer, Boolean> isSelected = ShoppingCartAdapter
                        .getIsSelected();
                Iterator iterator = isSelected.entrySet().iterator();
                List<Boolean> array = new ArrayList<Boolean>();//列表中checkbox选中状态
                List<Integer> nums = new ArrayList<Integer>();//列表中商品数量
                while (iterator.hasNext()) {
                    HashMap.Entry entry = (HashMap.Entry) iterator.next();
                    Integer key = (Integer) entry.getKey();
                    Boolean val = (Boolean) entry.getValue();
                    array.add(val);
                }
                for (int i = 0; i < data.size(); i++) {
                    int num = data.get(i).getNum();
                    int integral = Integer.valueOf(data.get(i).getIntegral());
                    nums.add(num);
                }
                if (checkBox_select_all.isChecked()) {

                    for (int i = 0; i < data.size(); i++) {
                        ShoppingCartAdapter.getIsSelected().put(i, true);
                    }
                    checkBox_add.setChecked(true);
                    adapter.notifyDataSetChanged();
                } else {
                    for (int i = 0; i < data.size(); i++) {
                        ShoppingCartAdapter.getIsSelected().put(i, false);
                    }
                    checkBox_add.setChecked(false);
                    adapter.notifyDataSetChanged();
                    integral_sum.setText(0 + "");
                }

            }
        });
        mListView= (ListView) findViewById(R.id.finance_list);
        mListView.setAdapter(adapter);
        mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {


                int pos = position;

                int num = data.get(pos).getNum();
                if (num == 0) {
                    Toast.makeText(context, "请选择商品数量", Toast.LENGTH_LONG)
                            .show();
                } else {
                    boolean cu = !ShoppingCartAdapter.getIsSelected().get(pos);
                    ShoppingCartAdapter.getIsSelected().put(pos, cu);
                    adapter.notifyDataSetChanged();
                    //遍历获取列表中checkbox的选中状态
                    HashMap<Integer, Boolean> isSelected = ShoppingCartAdapter
                            .getIsSelected();
                    Iterator iterator = isSelected.entrySet().iterator();
                    List<Boolean> array = new ArrayList<Boolean>();
                    while (iterator.hasNext()) {
                        HashMap.Entry entry = (HashMap.Entry) iterator.next();
                        Integer key = (Integer) entry.getKey();
                        Boolean val = (Boolean) entry.getValue();
                        array.add(val);
                    }
                    if (Test.isAllFalse(array)) {
                        checkBox_select_all.setChecked(false);
                        checkBox_add.setChecked(false);
                    }
                    if (Test.isAllTrue(array)) {
                        checkBox_select_all.setChecked(true);
                        checkBox_add.setChecked(true);
                    }
                    if (Test.isHaveOneFasle(array)) {
                        checkBox_select_all.setChecked(false);
                    }
                    if (Test.isHaveOneTrue(array)) {
                        checkBox_add.setChecked(true);
                    }
                }
            }
        });
    }

    @SuppressLint("HandlerLeak")
    private Handler handler = new Handler(){
        @SuppressWarnings("unchecked")
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if(msg.what == 10){ //更改选中商品的总价格
                float price = (Float)msg.obj;
                if(price > 0){
                    integral_sum.setText(price+"");
                }else{
                    integral_sum.setText("0");
                }
            }
            else if(msg.what == 11){
                //列表选中状态
                List<Boolean> array = (List<Boolean>) msg.obj;
                if (com.example.mygouwu.Test.isAllFalse(array)) {
                    checkBox_select_all.setChecked(false);
                    checkBox_add.setChecked(false);
                }
                if (Test.isAllTrue(array)) {
                    checkBox_select_all.setChecked(true);
                    checkBox_add.setChecked(true);
                }
                if (Test.isHaveOneFasle(array)) {
                    checkBox_select_all.setChecked(false);
                }
                if (Test.isHaveOneTrue(array)) {
                    checkBox_add.setChecked(true);
                }
            }
        }
    };
}
ppingCartAdapter extends BaseAdapter  {

    private Context context;
    private List<Test> loans;
    private LayoutInflater inflater;
    private static HashMap<Integer, Boolean> isSelected;
    private static HashMap<Integer, Integer> numbers;
    private Handler handler;
    int num;// 商品数量
    private List<String> listclearalter;

    static class ViewHolder { // 自定义控件集合
        public CheckBox ck_select;
        public ImageView pic_goods;
        public TextView id_goods;
        public TextView color_goods;
        public TextView type_goods;
        public TextView integral_goods;
//        public AddMinusWidget add_minus;
        public LinearLayout layout;
        public TextView number;
        public Button minus;
        public Button plus;
    }

    /**
     * 实例化Adapter
     *
     * @param context
     * @param data
     */
    public ShoppingCartAdapter(Context context, Handler handler, List<Test> data) {
        this.context = context;
        this.inflater = LayoutInflater.from(context);
        this.loans = data;
        this.handler = handler;
        isSelected = new HashMap<Integer, Boolean>();
        numbers = new HashMap<Integer, Integer>();
        initDate();
    }

    private void initDate() {
        for (int i = 0; i < loans.size(); i++) {
            getIsSelected().put(i, false);
            getNumbers().put(i, 1);
        }
    }


    public int getCount() {
        return loans.size();
    }


    public Object getItem(int position) {
        return loans.get(position);
    }


    public long getItemId(int position) {
        return position;
    }


    public View getView(final int position, View convertView, ViewGroup parent) {
        // 自定义视图
        ViewHolder itemView = null;
        if (convertView == null) {
            // 获取list_item布局文件的视图
            itemView = new ViewHolder();
            convertView = inflater.inflate(R.layout.list_shopping_cart_item,
                    null);
            // 获取控件对象
            itemView.ck_select = (CheckBox) convertView
                    .findViewById(R.id.ck_select);
            itemView.pic_goods = (ImageView) convertView
                    .findViewById(R.id.pic_goods);
            itemView.id_goods = (TextView) convertView
                    .findViewById(R.id.id_goods);
            itemView.color_goods = (TextView) convertView
                    .findViewById(R.id.color_goods);
            itemView.type_goods = (TextView) convertView
                    .findViewById(R.id.type_goods);
            itemView.integral_goods = (TextView) convertView
                    .findViewById(R.id.integral_goods);
            itemView.number = (TextView) convertView.findViewById(R.id.number);
            itemView.minus = (Button) convertView.findViewById(R.id.minus);
            itemView.plus = (Button) convertView.findViewById(R.id.plus);
            convertView.setTag(itemView);
        } else {
            itemView = (ViewHolder) convertView.getTag();
        }


        init(itemView, position);

        itemView.ck_select.setChecked(getIsSelected().get(position));
        itemView.number.setText(getNumbers().get(position).toString());
        if (getIsSelected().get(position)) {
            itemView.ck_select.setChecked(true);
        } else {
            itemView.ck_select.setChecked(false);
        }

        String a = itemView.number.getText().toString();
        loans.get(position).setNum(Integer.valueOf(a));

        Test test = loans.get(position);
        itemView.id_goods.setText((CharSequence) test.getId());
        itemView.color_goods.setText((CharSequence) test.getColor());
        itemView.type_goods.setText((CharSequence) test.getType());
        itemView.integral_goods.setText((CharSequence) test.getIntegral());
        itemView.pic_goods.setImageResource(R.mipmap.ic_launcher);
        return convertView;
    }

    private void init(final ViewHolder itemView, final int position) {

        itemView.ck_select
                .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

                    @Override
                    public void onCheckedChanged(CompoundButton buttonView,
                                                 boolean isChecked) {
                        isSelected.put(position, true);
                        getIsSelected().put(position, isChecked);
                        itemView.ck_select.setChecked(getIsSelected().get(
                                position));
                        listclearalter = new ArrayList<String>();
                        if (itemView.ck_select.isChecked()==true){
                            listclearalter.add(itemView+"");
                        }
                        handler.sendMessage(handler.obtainMessage(10,
                                getTotalPrice()));

                        Iterator iterator = isSelected.entrySet().iterator();
                        List<Boolean> array = new ArrayList<Boolean>();
                        while (iterator.hasNext()) {
                            HashMap.Entry entry = (HashMap.Entry) iterator
                                    .next();
                            Integer key = (Integer) entry.getKey();
                            Boolean val = (Boolean) entry.getValue();
                            array.add(val);
                        }
                        handler.sendMessage(handler.obtainMessage(11, array));
                    }
                });

        final String numString = itemView.number.getText().toString();
        itemView.plus.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                if (numString == null || numString.equals("")) {
                    num = 1;
                    itemView.number.setText("1");
                } else {
                    if (++num < 1) // 先加,再判断
                    {
                        num--;

                        Toast.makeText(context, "请输入一个大于0的数字",
                                Toast.LENGTH_SHORT).show();
                    } else {
                        itemView.number.setText(String.valueOf(num));
                        loans.get(position).setNum(num);
                        numbers.put(position, num);
                        handler.sendMessage(handler.obtainMessage(10,
                                getTotalPrice()));
                        Log.i("test", "+:" + num);
                    }
                }
            }
        });
        itemView.minus.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                if (numString == null || numString.equals("")) {
                    num = 1;
                    itemView.number.setText("1");
                } else {
                    if (--num < 1) // 先加,再判断
                    {
                        num++;
                        Log.i("test", "-:" + num);
                        Toast.makeText(context, "请输入一个大于0的数字",
                                Toast.LENGTH_SHORT).show();
                        Log.i("test", "-:" + num);
                    } else {
                        itemView.number.setText(String.valueOf(num));
                        Log.i("test", "-:" + num);
                        loans.get(position).setNum(num);
                        numbers.put(position, num);
                        handler.sendMessage(handler.obtainMessage(10,
                                getTotalPrice()));
                    }
                }

            }
        });

    }

    /**
     * 计算选中商品的积分
     *
     * @return 返回需要付费的总积分
     */
    private float getTotalPrice() {
        Test bean = null;
        float totalPrice = 0;
        for (int i = 0; i < loans.size(); i++) {
            bean = loans.get(i);
            if (ShoppingCartAdapter.getIsSelected().get(i)) {
                totalPrice += bean.getNum()
                        * Integer.valueOf(bean.getIntegral());
            }
        }
        return totalPrice;
    }
    public   List<String>  getclearlter( ){return listclearalter;}

    public static HashMap<Integer, Boolean> getIsSelected() {
        return isSelected;
    }

    public static void setIsSelected(HashMap<Integer, Boolean> isSelected) {
        ShoppingCartAdapter.isSelected = isSelected;
    }

    public static HashMap<Integer, Integer> getNumbers() {
        return numbers;
    }

    public static void setNumbers(HashMap<Integer, Integer> numbers) {
        ShoppingCartAdapter.numbers = numbers;
    }
}

Test

package com.example.mygouwu;

import java.util.List;

/**
 * com.example.mygouwu
 * 徐世辉  1503A
 * 类作用:本类---
 * 思路:
 * 1.
 * 2.
 * 3.
 * 2017/6/28 14:24
 */

public class Test {
    @Override
    public String toString() {
        return "test [id=" + id + ", color=" + color
                + ", type=" + type + ", integral=" + integral + "]";
    }

    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getColor() {
        return color;
    }
    public void setColor(String color) {
        this.color = color;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public String getIntegral() {
        return integral;
    }
    public void setIntegral(String integral) {
        this.integral = integral;
    }
    private String id;
    private String color;
    private String type;
    private String integral;
    private int num;//商品数量
    private int sumIntegral;
    private boolean isChoosed;   //商品是否在购物车中被选中

    public Test(String id, String color, String type, String integral) {
        super();
        this.id = id;
        this.color = color;
        this.type = type;
        this.integral = integral;
    }
    public Test() {
        super();
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public int getSumIntegral() {
        return sumIntegral;
    }

    public void setSumIntegral(int sumIntegral) {
        this.sumIntegral = sumIntegral;
    }

    public boolean isChoosed() {
        return isChoosed;
    }

    public void setChoosed(boolean isChoosed) {
        this.isChoosed = isChoosed;
    }


    public static boolean isAllFalse(List<Boolean> array) {
        return false;
    }

    public static boolean isAllTrue(List<Boolean> array) {
        return false;
    }

    public static boolean isHaveOneFasle(List<Boolean> array) {
        return false;
    }

    public static boolean isHaveOneTrue(List<Boolean> array) {
        return false;
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值