zoukankan      html  css  js  c++  java
  • Android实现购物车功能

    如图:

          

    主要代码如下:
    actvity中的代码:

      publicclassShoppingCartActivity extendsBaseActivity {

      
      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;
      
      @Override
      protected void onCreate(Bundle bundle) {
        // TODO Auto-generated method stub
        super.onCreate(bundle);
        setContentView(R.layout.activity_shopping_cart);
        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 OnClickListener() {
      
          @Override
          public void onClick(View v) {
            data.clear();
            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 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 OnItemClickListener() {
      
          @Override
          public void onItemClick(AdapterView<?> parent, View view,
              int position, long id) {
            Toast.makeText(context, position + "", Toast.LENGTH_LONG)
                .show();
      
            int pos = position - 1;
            ViewHolder viewHolder = (ViewHolder) view.getTag();
            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 (Test.isAllFalse(array)) {
              checkBox_select_all.setChecked(false);
              checkBox_add.setChecked(false);
            }
            if (.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);
            }
          }
        }
      };
     

    actvity中XML的代码:

      <?xmlversion="1.0"encoding="utf-8"?>

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:header=http://schemas.android.com/apk/res/com.sxc.test"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:background="@color/app_background"
      android:orientation="vertical" >
      
      <com.autoserve.core.widget.HeaderWidget
        android:id="@+id/header"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        header:text="我的购物车" />
      
      <LinearLayout
        android:id="@+id/layout1"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_below="@id/header"
        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"
            style="@style/CustomCheckboxTheme"
            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="@dimen/small_size" />
        </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="@dimen/small_size" />
        </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"
              style="@style/CustomCheckboxTheme2"
              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="@dimen/small_size" />
      
            <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="@dimen/small_size" />
      
            <TextView
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="积分"
              android:textColor="@color/white"
              android:textSize="@dimen/small_size" />
          </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="@dimen/small_size" />
      </LinearLayout>
      
    </RelativeLayout>

    XML中头部可以到网上找一个这里就不放上来了
    checkbox和button的样式可以根据个人喜好设置

    Adaper中的代码:

      publicclassShoppingCartAdapter extendsBaseAdapter {

      
      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;// 商品数量
      
      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);
        }
      }
      
      @Override
      public int getCount() {
        return loans.size();
      }
      
      @Override
      public Object getItem(int position) {
        return loans.get(position);
      }
      
      @Override
      public long getItemId(int position) {
        return position;
      }
      
      @Override
      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.drawable.shopping);
        return convertView;
      }
      
      private void init(final ViewHolder itemView, final int position) {
      
        itemView.ck_select
            .setOnCheckedChangeListener(new OnCheckedChangeListener() {
      
              @Override
              public void onCheckedChanged(CompoundButton buttonView,
                  boolean isChecked) {
                isSelected.put(position, true);
                getIsSelected().put(position, isChecked);
                itemView.ck_select.setChecked(getIsSelected().get(
                    position));
                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 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 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 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;
      }
    }
     
     
    Adapter中的XML代码:
      <?xmlversion="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"
          style="@style/CustomCheckboxTheme"
          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="@drawable/shopping" />
      
        <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="@dimen/small_size" />
      
          <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="25dp"
          android:layout_height="match_parent"
          android:background="@drawable/kuangzi1"
          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:background="@drawable/kuangzi1"
          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:background="@drawable/kuangzi1"
          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>
     
    实体类:
      publicclassTest {
      @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;
      }  
    }

      

    主要代码如下:
    actvity中的代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    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;
      
      @Override
      protected void onCreate(Bundle bundle) {
        // TODO Auto-generated method stub
        super.onCreate(bundle);
        setContentView(R.layout.activity_shopping_cart);
        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 OnClickListener() {
      
          @Override
          public void onClick(View v) {
            data.clear();
            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 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 OnItemClickListener() {
      
          @Override
          public void onItemClick(AdapterView<?> parent, View view,
              int position, long id) {
            Toast.makeText(context, position + "", Toast.LENGTH_LONG)
                .show();
      
            int pos = position - 1;
            ViewHolder viewHolder = (ViewHolder) view.getTag();
            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 (Test.isAllFalse(array)) {
              checkBox_select_all.setChecked(false);
              checkBox_add.setChecked(false);
            }
            if (.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);
            }
          }
        }
      };

    actvity中XML的代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:header=http://schemas.android.com/apk/res/com.sxc.test"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:background="@color/app_background"
      android:orientation="vertical" >
      
      <com.autoserve.core.widget.HeaderWidget
        android:id="@+id/header"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        header:text="我的购物车" />
      
      <LinearLayout
        android:id="@+id/layout1"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_below="@id/header"
        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"
            style="@style/CustomCheckboxTheme"
            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="@dimen/small_size" />
        </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="@dimen/small_size" />
        </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"
              style="@style/CustomCheckboxTheme2"
              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="@dimen/small_size" />
      
            <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="@dimen/small_size" />
      
            <TextView
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="积分"
              android:textColor="@color/white"
              android:textSize="@dimen/small_size" />
          </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="@dimen/small_size" />
      </LinearLayout>
      
    </RelativeLayout>

    -XML中头部可以到网上找一个这里就不放上来了
    .checkbox和button的样式可以根据个人喜好设置。

    Adaper中的代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    public class ShoppingCartAdapter 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;// 商品数量
      
      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);
        }
      }
      
      @Override
      public int getCount() {
        return loans.size();
      }
      
      @Override
      public Object getItem(int position) {
        return loans.get(position);
      }
      
      @Override
      public long getItemId(int position) {
        return position;
      }
      
      @Override
      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.drawable.shopping);
        return convertView;
      }
      
      private void init(final ViewHolder itemView, final int position) {
      
        itemView.ck_select
            .setOnCheckedChangeListener(new OnCheckedChangeListener() {
      
              @Override
              public void onCheckedChanged(CompoundButton buttonView,
                  boolean isChecked) {
                isSelected.put(position, true);
                getIsSelected().put(position, isChecked);
                itemView.ck_select.setChecked(getIsSelected().get(
                    position));
                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 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 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 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;
      }
    }

    Adapter中的XML代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    <?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"
          style="@style/CustomCheckboxTheme"
          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="@drawable/shopping" />
      
        <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="@dimen/small_size" />
      
          <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="25dp"
          android:layout_height="match_parent"
          android:background="@drawable/kuangzi1"
          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:background="@drawable/kuangzi1"
          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:background="@drawable/kuangzi1"
          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>

    实体类:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    package com.autoserve.net33.model;
      
      
    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;
      }  
    }

    以上就是本文的全部内容,祝大家在新的一年里工作顺利,事事顺心,我们大家共同努力。

  • 相关阅读:
    jedis jedispool Redistemplate
    开箱一个docker
    JPA分页查询与条件分页查询
    基于token与基于服务器的身份认证
    uni-app第三方登陆-微信
    main.js中封装全局登录函数
    idea搭建可运行Servlet的Web项目[maven]
    什么是servlet?
    简单了解request与response
    颓废的三天
  • 原文地址:https://www.cnblogs.com/naishan/p/5650522.html
Copyright © 2011-2022 走看看