Android实现的仿淘宝购物车demo示例

Android实现的仿淘宝购物车demo示例,第1张

概述本文实例讲述了Android实现的仿淘宝购物车。分享给大家供大家参考,具体如下:

本文实例讲述了AndroID实现的仿淘宝购物车。分享给大家供大家参考,具体如下:

夏的热情渐渐退去,秋如期而至,丰收的季节,小编继续着实习之路,走着走着,就走到了购物车,逛过淘宝或者是京东的小伙伴都知道购物车里面的宝贝可不止一件,对于爱购物的姑娘来说,购物车里面的商品恐怕是爆满,添加不进去了,以前逛淘宝的时候,小编没有想过要怎么样实现购物车,就知道在哪儿一个劲儿的逛,但是现在不一样了,小编做为一个开发者,想的就是该如何实现,捣鼓了两天的时间,用ListvIEw来实现,已经有模有样了,现在小编就来简单的总结一下实现购物车的心路历程,帮助有需要的小伙伴,欢迎小伙伴们留言交流。

首先,小编简单的介绍一下ListvIEw,ListVIEw 控件可使用四种不同视图显示项目。通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。 可使用 ListVIEw 控件将称作 ListItem 对象的列表条目组织成下列四种不同的视图之一:1.大(标准)图标2.小图标3.列表4.报表 VIEw 属性决定在列表中控件使用何种视图显示项目。还可用 LabelWrap 属性控制列表中与项目关联的标签是否可换行显示。另外,还可管理列表中项目的排序方法和选定项目的外观。今天小编主要和小伙伴们分享一下,如何使用ListvIEw实现购物的功能。做过AndroID的小伙伴都知道一个xml对应一个java类,但是购物车有点不一样,因为她里面的商品有可能不只一件,所以我们需要有两个xml,两个java类,相对应的还需要一个适配器adapter,一个model,下面小编来详细的介绍一下实现购物车的过程。

第一步,写model层,类似我们之前写过的实体层,具体代码如下所示:

/*** * 说明:购物车的相关信息 * 作者:丁国华 * 时间:2015年8月10日 09:41:18 */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;    }}

第二步,我们编写xml里面的文件,需要编写两个xml文件,首先我们来编写activity_shopPingcart.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: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>  <!-- ListvIEw,购物车里面的东西有可能比较多,需要用ListvIEw来进行显示 -->  <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 >

我们来看一下xml布局的效果,如下图所示:

接着我们来布局第二个xml,activity_shopPingcart_item.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: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>

布局效果如下所示:

第三步、我们来编写适配器adapter中的代码,即ShopPingCartAdapter,具体代码如下所示:

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.DialogInterface.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() {    // Todo auto-generated method stub    if (mList==null) {      return 0;    }else {      return this.mList.size();    }  }  @OverrIDe  public Object getItem(int position) {    // Todo auto-generated method stub    if (mList == null) {      return null;    } else {      return this.mList.get(position);    }  }  @OverrIDe  public long getItemID(int position) {    // Todo auto-generated method stub    return position;  }  @OverrIDe  public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) {    // Todo auto-generated method stub    VIEwHolder holder = null;    if (convertVIEw == null) {      holder = new VIEwHolder();  convertVIEw = LayoutInflater.from(this.mContext).inflate(R.layout.activity_shopPingcart_item,null,true);      holder.image=(ImageVIEw) convertVIEw.findVIEwByID(R.ID.pro_image);      holder.chose=(CheckBox) convertVIEw.findVIEwByID(R.ID.pro_checkBox);      holder.proname=(TextVIEw) convertVIEw.findVIEwByID(R.ID.pro_name);      holder.proPrice=(TextVIEw)convertVIEw.findVIEwByID(R.ID.pro_shopPrice);      holder.proCount=(TextVIEw) convertVIEw.findVIEwByID(R.ID.pro_count);      convertVIEw.setTag(holder);    } else {      holder = (VIEwHolder) convertVIEw.getTag();    }    if (this.mList != null) {      shopPingCart shopPingList=this.mList.get(position);      holder.proname.setText(shopPingList.getProname().toString());      holder.proPrice.setText(shopPingList.getShopPrice().toString());      holder.proCount.setText(shopPingList.getProCount().toString());    }    return convertVIEw;  }  /*定义item对象*/  public class VIEwHolder {    ImageVIEw image;    TextVIEw proname;    CheckBox chose;    TextVIEw proPrice;    TextVIEw proCount; }}

第四步,编写java类里面的代码,我们先来编写ShopPingCartItemActivity.java中的内容,具体代码如下所示:

package jczb.shoPing.ui;import androID.app.Activity;import androID.os.Bundle;public class ShopPingCartItemActivity extends Activity {  protected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_shopPingcart_item); }}

第五步,编写ShopPingCartActivity.java里面的内容,如下所示:

package jczb.shoPing.ui;import java.util.HashMap;import java.util.List;import java.util.Map;import jczb.shoPing.adapter.ShopPingCartAdapter;import jczb.shoPing.common.AgentAPI;import jczb.shoPing.model.shopPingCart;import jczb.shoPing.ui.SearchActivity.VIEwHolder;import jczb.shoPing.ui.ShopPingcartActivity2.myThread;import com.alibaba.fastJson.JsON;import androID.R.string;import androID.app.Activity;import androID.content.Intent;import androID.os.Bundle;import androID.os.Handler;import androID.os.Message;import androID.vIEw.LayoutInflater;import androID.vIEw.VIEw;import androID.vIEw.VIEwGroup;import androID.Widget.BaseAdapter;import androID.Widget.CheckBox;import androID.Widget.ImageVIEw;import androID.Widget.ListVIEw;import androID.Widget.TextVIEw;import androID.Widget.Toast;public class ShopPingCartActivity extends Activity{  TextVIEw jIEsuan,proname,shopPrice,proCount;  ListVIEw aListVIEw;  private LayoutInflater layoutInflater;  private TextVIEw name;    protected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_shopPingcart);    findVIEwByID();    /*开始线程*/    new Thread(new myThread()).start();{  }   /*根据ID找到控件*/   public voID findVIEwByID(){     aListVIEw=(ListVIEw) findVIEwByID(R.ID.cart_shopPing_ListvIEw);    }  //开辟线程    public class myThread implements Runnable {      public voID run() {        Message msg = new Message();        try {          Map<String,String> parmas = new HashMap<String,String>();          parmas.put("username","1");          parmas.put("password","2");    String url = "http://192.168.1.110:8080/SchoolShopJson/ShopPingCart.txt";          // 要发送的数据和访问的地址          String result = AgentAPI.dopost(parmas,url); // 如果返回的为空或者初始化时输入的ip地址无效(会返回下面的字符串),说明服务器连接失败!          if (result == null) {            // 使用-1代表服务器连接失败            msg.what = -1;          } else {            msg.what=1;            msg.obj=result;          }        } catch (Exception e) {          e.printstacktrace();          // 使用-1代表程序异常          msg.what = -2;          msg.obj = e;        }        mHandler.sendMessage(msg);      }    }    protected voID initVIEw() {      // Todo auto-generated method stub    }     /*子线程-解析数据*/     private Handler mHandler = new Handler(){      public voID handleMessage(Message msg) {        switch (msg.what) {        case -1:          Toast.makeText(ShopPingCartActivity.this,"服务器连接失败!",Toast.LENGTH_SHORT).show();          break;        case -2:          Toast.makeText(ShopPingCartActivity.this,"哎呀,出错啦...",Toast.LENGTH_SHORT).show();          break;        case 1:          String temp = (String)msg.obj;          //将拿到的Json转换为数组      List<shopPingCart> ShopPingcartInfo = JsON.parseArray(temp,shopPingCart.class);    ListVIEw.setAdapter(new ShopPingCartAdapter(ShopPingCartActivity.this,ShopPingcartInfo));          break;        default:          break;        }      }    };}

我们来看一下运行的效果,如下所示:

更多关于AndroID相关内容感兴趣的读者可查看本站专题:《Android布局layout技巧总结》、《Android视图View技巧总结》、《Android编程之activity *** 作技巧总结》、《Android *** 作SQLite数据库技巧总结》、《Android *** 作json格式数据技巧总结》、《Android数据库 *** 作技巧总结》、《Android文件 *** 作技巧汇总》、《Android编程开发之SD卡 *** 作方法汇总》、《Android开发入门与进阶教程》、《Android资源 *** 作技巧汇总》及《Android控件用法总结》

希望本文所述对大家AndroID程序设计有所帮助。

总结

以上是内存溢出为你收集整理的Android实现的仿淘宝购物车demo示例全部内容,希望文章能够帮你解决Android实现的仿淘宝购物车demo示例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1148919.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存