wemall app商城源码中实现带图片和checkbox的listview

wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改。本文分享其中实现带图片和checkbox的listview,供技术员参考学习。

 

[java] view plain copy

  1. public class MainAdapter extends BaseAdapter {  
  2.   
  3.     private LayoutInflater mInflater;// 得到一个LayoutInfalter对象用来导入布局  
  4.     private ArrayList<Map<String, Object>> getDate;  
  5.     private Context mContext;  
  6.       
  7.     public MainAdapter(Context context , ArrayList<Map<String, Object>> getDate) {  
  8.         this.mContext = context;  
  9.         this.mInflater = LayoutInflater.from(context);  
  10.         this.getDate = getDate;  
  11.     }  
  12.   
  13.     @Override  
  14.     public int getCount() {  
  15.         // TODO Auto-generated method stub  
  16.         return getDate.size();// 返回数组的长度  
  17.     }  
  18.   
  19.     @Override  
  20.     public Object getItem(int position) {  
  21.         // TODO Auto-generated method stub  
  22.         return getDate.get(position);  
  23.     }  
  24.   
  25.     @Override  
  26.     public long getItemId(int position) {  
  27.         // TODO Auto-generated method stub  
  28.         return position;  
  29.     }  
  30.   
  31.     @SuppressLint("NewApi")  
  32.     @Override  
  33.     public View getView(final int position, View convertView,  
  34.             ViewGroup parent) {  
  35.         // TODO Auto-generated method stub  
  36.         final ViewHolder holder;  
  37.         if (convertView == null) {  
  38.             holder = new ViewHolder();  
  39.             convertView = mInflater.inflate(R.layout.itemlist_shop, null);  
  40.             holder.image = (ImageView) convertView  
  41.                     .findViewById(R.id.itemlist_image);  
  42.             holder.name = (TextView) convertView  
  43.                     .findViewById(R.id.itemlist_shopname);  
  44.             holder.price = (TextView) convertView  
  45.                     .findViewById(R.id.waimai_shopmenu_adapter_item_price);  
  46.             holder.plusButton = (ImageButton) convertView  
  47.                     .findViewById(R.id.plus_btn);  
  48.             holder.minusButton = (ImageButton) convertView  
  49.                     .findViewById(R.id.minus_btn);  
  50.             holder.numTextView = (TextView) convertView  
  51.                     .findViewById(R.id.count);  
  52.             convertView.setTag(holder);// 绑定ViewHolder对象  
  53.         } else {  
  54.             holder = (ViewHolder) convertView.getTag();// 取出ViewHolder对象  
  55.         }  
  56.           
  57.         convertView.setOnClickListener(new OnClickListener() {  
  58.             @Override  
  59.             public void onClick(View v) {  
  60.                 // TODO Auto-generated method stub  
  61.                 final LinearLayout layout = (LinearLayout) mInflater.inflate(R.layout.dialog_detail, null);  
  62.                 final Dialog dialog = new Dialog(mContext);  
  63.                 dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);  
  64.                 dialog.setContentView(layout);  
  65.                 dialog.show();  
  66.                   
  67.                 final ImageView imageView = (ImageView) layout.findViewById(R.id.dialog_detail_big_image);  
  68.                 new AsyncImageLoader(mContext).downloadImage(getDate.get(position).get("image").toString(),true,  
  69.                         new ImageCallback() {  
  70.                             @Override  
  71.                             public void onImageLoaded(Bitmap bitmap, String imageUrl) {  
  72.                                 // TODO Auto-generated method stub  
  73.                                 imageView.setImageBitmap(bitmap);  
  74.                             }  
  75.                         });  
  76.                   
  77.                 TextView textViewPrice = (TextView)layout.findViewById(R.id.dialog_detail_single_price);  
  78.                 textViewPrice.setText(holder.price.getText().toString());  
  79.                   
  80.                 TextView textViewNum = (TextView) layout.findViewById(R.id.count);  
  81.                 textViewNum.setText(holder.numTextView.getText().toString());  
  82.                   
  83.                 layout.findViewById(R.id.dialog_detail_close).setOnClickListener(new OnClickListener() {  
  84.                     @Override  
  85.                     public void onClick(View v) {  
  86.                         // TODO Auto-generated method stub  
  87.                         dialog.dismiss();  
  88.                     }  
  89.                 });  
  90.                 layout.findViewById(R.id.dialog_detail_addcart).setOnClickListener(new OnClickListener() {  
  91.                     @Override  
  92.                     public void onClick(View v) {  
  93.                         // TODO Auto-generated method stub  
  94.                         dialog.dismiss();  
  95.                     }  
  96.                 });  
  97.                 final TextView textViewin = (TextView) layout.findViewById(R.id.count);  
  98.                 layout.findViewById(R.id.plus_btn).setOnClickListener(new OnClickListener() {  
  99.                     @Override  
  100.                     public void onClick(View v) {  
  101.                         // TODO Auto-generated method stub  
  102.                         holder.plusButton.callOnClick();  
  103.                         textViewin.setText(holder.numTextView.getText().toString());  
  104.                     }  
  105.                 });  
  106.                 layout.findViewById(R.id.minus_btn).setOnClickListener(new OnClickListener() {  
  107.                       
  108.                     @Override  
  109.                     public void onClick(View v) {  
  110.                         // TODO Auto-generated method stub  
  111.                         holder.minusButton.callOnClick();  
  112.                         textViewin.setText(holder.numTextView.getText().toString());  
  113.                     }  
  114.                 });  
  115.                   
  116.             }  
  117.         });  
  118.   
  119. //      String imgUrl = getDate.get(position).get("image").toString();  
  120. //        AsyncImageLoader loader = new AsyncImageLoader(mContext);  
  121. //        //将图片缓存至外部文件中  
  122. //        loader.setCache2File(true);   //false  
  123. //        //设置外部缓存文件夹  
  124. //        loader.setCachedDir(mContext.getCacheDir().getAbsolutePath());  
  125.           
  126.         //下载图片,第二个参数是否缓存至内存中  
  127. //        loader.downloadImage(imgUrl, false, new AsyncImageLoader.ImageCallback() {  
  128. //          @Override  
  129. //          public void onImageLoaded(Bitmap bitmap, String imageUrl) {  
  130. //              if(bitmap != null){  
  131. //                  holder.image.setImageBitmap(bitmap);  
  132. //              }else{  
  133. //                  //下载失败,设置默认图片  
  134. //                  holder.image.setImageResource(R.drawable.about_logo);  
  135. //              }  
  136. //          }  
  137. //      });  
  138.         new AsyncImageLoader(mContext).downloadImage(getDate.get(position).get("image").toString(),true,  
  139.                 new ImageCallback() {  
  140.                     @Override  
  141.                     public void onImageLoaded(Bitmap bitmap, String imageUrl) {  
  142.                         // TODO Auto-generated method stub  
  143.                         holder.image.setImageBitmap(bitmap);  
  144.                     }  
  145.                 });  
  146.           
  147.         holder.name.setText(getDate.get(position).get("name")  
  148.                 .toString());  
  149.         holder.price.setText(getDate.get(position).get("price")  
  150.                 .toString());  
  151.         holder.numTextView.setText(String.valueOf(CartData.findCart(position)));  
  152.         holder.plusButton.setOnClickListener(new OnClickListener() {  
  153.             @Override  
  154.             public void onClick(View v) {  
  155.                 // TODO Auto-generated method stub  
  156.                 int num = Integer.parseInt(holder.numTextView.getText()  
  157.                         .toString()) + 1;  
  158.                 holder.numTextView.setText(String.valueOf(num));  
  159.   
  160.                 CartData.editCart(getDate.get(position).get("id").toString(),  
  161.                         getDate.get(position).get("name").toString(),  
  162.                         getDate.get(position).get("price").toString(),  
  163.                         String.valueOf(num),  
  164.                         getDate.get(position).get("image").toString());  
  165.   
  166.             }  
  167.         });  
  168.         holder.minusButton.setOnClickListener(new OnClickListener() {  
  169.   
  170.             @Override  
  171.             public void onClick(View v) {  
  172.                 // TODO Auto-generated method stub  
  173.                 int num = Integer.parseInt(holder.numTextView.getText()  
  174.                         .toString()) - 1;  
  175.                 if (num >= 0) {  
  176.                     holder.numTextView.setText(String.valueOf(num));  
  177.                     if (num == 0) {  
  178.                         CartData.removeCart(getDate.get(position)  
  179.                                 .get("id").toString());  
  180.                     } else {  
  181.                         CartData.editCart(getDate.get(position).get("id").toString(),  
  182.                                 getDate.get(position).get("name").toString(),  
  183.                                 getDate.get(position).get("price").toString(),  
  184.                                 String.valueOf(num),  
  185.                                 getDate.get(position).get("image").toString());  
  186.                     }  
  187.   
  188.                 }  
  189.             }  
  190.         });  
  191.           
  192.         return convertView;  
  193.     }  
  194.   
  195. }  

 

 

 原文详情地址:http://Git.oschina.NET/einsqing/wemall-mobile

wemall-mobile商城详情地址:http://www.koahub.com/home/product/56

wemall官网地址:http://www.wemallshop.com

WeMall - 开源微商城 微信商城 商城源码 分销商城 b2b2c商城系统

转载于:https://my.oschina.net/u/3034145/blog/792395

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值