微信公众号制作开发 微信小程序定制开发 网站建设制作 手机app软件开发

您的位置:首页 > 技术观点 > 信息详情

Android如何实现购物车功能

来源:山东鸿软信息科技有限公司  阅读量:  时间:2016-02-14 14:02
这篇文章主要为大家详细介绍了Android实现购物车功能的具体方法,具有一定的参考价值,需要的朋友可以参考下

主要代码如下: 

actvity中的代码:


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的代码:


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


成为您更加专业的技术合伙人

网站建设 | APP开发 | 产品服务 | 技术观点 | 关于我们      电话:151-6502-2080  客服QQ:1828087588、1421667633  客服电子邮箱:1828087588@qq.com

Copyright © 2021 山东鸿软信息科技有限公司 版权所有 https://www.greatsoft.cn 鲁ICP备16026454号