
首先,小编简单的介绍一下listview,ListView
控件可使用四种不同视图显示项目。通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。 可使用 ListView 控件将称作
ListItem 对象的列表条目组织成下列四种不同的视图之一:1.大(标准)图标2.小图标3.列表4.报表 View
属性决定在列表中控件使用何种视图显示项目。还可用 LabelWrap
属性控制列表中与项目关联的标签是否可换行显示。另外,还可管理列表中项目的排序方法和选定项目的外观。今天小编主要和小伙伴们分享一下,如何使用
listview实现购物的功能。做过Android的小伙伴都知道一个xml对应一个java类,但是购物车有点不一样,因为她里面的商品有可能不只一
件,所以我们需要有两个xml,两个java类,相对应的还需要一个适配器adapter,一个model,下面小编来详细的介绍一下实现购物车的过程。 第一步,写model层,类似我们之前写过的实体层,具体代码如下所示: - <span style="font-size:18px;">
-
-
-
-
- package jczb.shoping.model;
-
- import java.io.Serializable;
- import java.util.ArrayList;
- import java.util.List;
-
- import android.R.string;
-
- public class shoppingCart implements Serializable {
-
- private String proImg;
- private String ProName;
- private String shopPrice;
- private String markPrice;
- private String proCount;
- public String getProImg() {
- return proImg;
- }
- public void setProImg(String proImg) {
- this.proImg = proImg;
- }
- public String getProName() {
- return ProName;
- }
- public void setProName(String proName) {
- ProName = proName;
- }
- public String getShopPrice() {
- return shopPrice;
- }
- public void setShopPrice(String shopPrice) {
- this.shopPrice = shopPrice;
- }
- public String getMarkPrice() {
- return markPrice;
- }
- public void setMarkPrice(String markPrice) {
- this.markPrice = markPrice;
- }
- public String getProCount() {
- return proCount;
- }
- public void setProCount(String proCount) {
- this.proCount = proCount;
- }
-
- }
- </span>
第二步,我们编写xml里面的文件,需要编写两个xml文件,首先我们来编写activity_shoppingcart.xml的文件,代码如下所示:- <span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical" >
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="50dp"
- android:background="#438FCB"
- android:orientation="horizontal">
-
-
- <ImageView
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="1"
- android:padding="8dp"
- android:src="@drawable/tb_icon_actionbar_back" />
-
- <TextView
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="5.49"
- android:gravity="center"
- android:text="购物车"
- android:textColor="#FFFFFF"
- android:textSize="20sp"/>
-
- <TextView
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="3.18"
- android:gravity="center"
- android:text="编辑"
- android:textColor="#FFFFFF"
- android:textSize="20sp" />
- </LinearLayout>
-
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:orientation="vertical"
- android:layout_marginTop="0dp">
-
- <ListView
- android:id="@+id/cart_shopping_listview"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:divider="#808080"
- android:dividerHeight="0.5dp">
- </ListView>
-
- </LinearLayout>
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="50dp"
- android:layout_alignParentBottom="true"
- android:orientation="horizontal">
-
- <CheckBox
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginLeft="10dp"
- android:text="全选"/>
-
- <TextView
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:gravity="right"
- android:paddingRight="10dp"
- android:textColor="#F63A19"
- android:text="合计:¥88"/>
-
-
- <TextView
- android:id="@+id/jiesuan_button"
- android:layout_width="80dp"
- android:layout_height="wrap_content"
- android:layout_marginRight="10dp"
- android:background="@drawable/android_login_color"
- android:gravity="center"
- android:padding="10dp"
- android:text="结算"/>
- </LinearLayout>
-
- </LinearLayout >
- </span>
我们来看一下xml布局的效果,如下图所示: 
接着我们来布局第二个xml,activity_shoppingcart_item.xml,代码如下所示: - <span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical" >
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
-
-
- <CheckBox
- android:id="@+id/pro_checkbox"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:focusable="false"
- android:focusableInTouchMode="false" />
-
-
- <ImageView
- android:id="@+id/pro_image"
- android:layout_width="80dp"
- android:layout_height="80dp"
- android:layout_margin="5dp"
- android:scaleType="centerCrop"
- android:src="@drawable/detail_show_1"/>
-
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical">
-
- <TextView
- android:id="@+id/pro_name"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="10dp"
- android:text="连衣裙女夏季"
- />
-
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="33dp"
- android:orientation="horizontal" >
-
- <TextView
- android:id="@+id/pro_shopPrice"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="bottom"
- android:layout_marginTop="10dp"
- android:text="¥88"
- android:textSize="16sp"/>
-
- <!-- <TextView
- android:id="@+id/pro_markPrice"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="bottom"
- android:layout_marginTop="10dp"
- android:text="¥66"
- android:textSize="16sp"/> -->
- </LinearLayout>
-
- <LinearLayout
- android:layout_width="150dp"
- android:layout_height="33dp"
- android:orientation="horizontal" >
-
- <Button
- android:id="@+id/pro_add"
- android:layout_width="wrap_content"
- android:layout_height="34dp"
- android:text="+" />
-
- <TextView
- android:id="@+id/pro_count"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="bottom"
- android:layout_marginTop="10dp"
- android:text="88"
- android:textSize="13sp"/>
-
-
-
- <Button
- android:id="@+id/pro_reduce"
- android:layout_width="wrap_content"
- android:layout_height="34dp"
- android:layout_marginRight="0dp"
- android:text="-" />
-
- </LinearLayout>
- </LinearLayout>
- </LinearLayout>
-
- </LinearLayout>
- </span>
布局效果如下所示:  第三步、我们来编写适配器adapter中的代码,即ShoppingCartAdapter,具体代码如下所示: - <span style="font-size:18px;">package jczb.shoping.adapter;
-
- import java.util.List;
-
- import cn.jpush.android.data.r;
-
- import jczb.shoping.adapter.productsListAdapter.ViewHolder;
- import jczb.shoping.adapter.productsListAdapter.searchList;
- import jczb.shoping.model.productSonSorting_cate;
- import jczb.shoping.model.shoppingCart;
- import jczb.shoping.model.sonSortigns;
- import jczb.shoping.ui.R;
- import jczb.shoping.ui.ShoppingCartActivity;
- import android.content.Context;
- import android.content.Intent;
- import android.content.DialogInte**ce.OnClickListener;
- import android.os.Bundle;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.BaseAdapter;
- import android.widget.Button;
- import android.widget.CheckBox;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import android.widget.TextView;
-
- public class ShoppingCartAdapter extends BaseAdapter {
-
- private Context mContext;
- private List<shoppingCart> mList;
-
- public ShoppingCartAdapter(Context mContext,List<shoppingCart> mList) {
- super();
- this.mContext = mContext;
- this.mList = mList;
- }
-
- @Override
- public int getCount() {
-
- if (mList==null) {
- return 0;
- }else {
- return this.mList.size();
- }
- }
-
- @Override
- public Object getItem(int position) {
-
- if (mList == null) {
- return null;
- } else {
- return this.mList.get(position);
- }
- }
-
- @Override
- public long getItemId(int position) {
-
- return position;
<
|