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代码:
   <? 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 >
 
实体类:
   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;
   }  
}

 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

主要代码如下:
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;
   }  
}

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

转载于:https://www.cnblogs.com/naishan/p/5650522.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值