Chinaunix首页 | 论坛 | 博客
  • 博客访问: 53897
  • 博文数量: 48
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 260
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-12 11:48
文章分类
文章存档

2016年(48)

我的朋友

分类: Java

2016-11-21 15:54:28

 

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

 

点击(此处)折叠或打开

  1. public class MainAdapter extends BaseAdapter {

  2.     private LayoutInflater mInflater;// 得到一个LayoutInfalter对象用来导入布局
  3.     private ArrayList<Map<String, Object>> getDate;
  4.     private Context mContext;
  5.     
  6.     public MainAdapter(Context context , ArrayList<Map<String, Object>> getDate) {
  7.         this.mContext = context;
  8.         this.mInflater = LayoutInflater.from(context);
  9.         this.getDate = getDate;
  10.     }

  11.     @Override
  12.     public int getCount() {
  13.         // TODO Auto-generated method stub
  14.         return getDate.size();// 返回数组的长度
  15.     }

  16.     @Override
  17.     public Object getItem(int position) {
  18.         // TODO Auto-generated method stub
  19.         return getDate.get(position);
  20.     }

  21.     @Override
  22.     public long getItemId(int position) {
  23.         // TODO Auto-generated method stub
  24.         return position;
  25.     }

  26.     @SuppressLint("NewApi")
  27.     @Override
  28.     public View getView(final int position, View convertView,
  29.             ViewGroup parent) {
  30.         // TODO Auto-generated method stub
  31.         final ViewHolder holder;
  32.         if (convertView == null) {
  33.             holder = new ViewHolder();
  34.             convertView = mInflater.inflate(R.layout.itemlist_shop, null);
  35.             holder.image = (ImageView) convertView
  36.                     .findViewById(R.id.itemlist_image);
  37.             holder.name = (TextView) convertView
  38.                     .findViewById(R.id.itemlist_shopname);
  39.             holder.price = (TextView) convertView
  40.                     .findViewById(R.id.waimai_shopmenu_adapter_item_price);
  41.             holder.plusButton = (ImageButton) convertView
  42.                     .findViewById(R.id.plus_btn);
  43.             holder.minusButton = (ImageButton) convertView
  44.                     .findViewById(R.id.minus_btn);
  45.             holder.numTextView = (TextView) convertView
  46.                     .findViewById(R.id.count);
  47.             convertView.setTag(holder);// 绑定ViewHolder对象
  48.         } else {
  49.             holder = (ViewHolder) convertView.getTag();// 取出ViewHolder对象
  50.         }
  51.         
  52.         convertView.setOnClickListener(new OnClickListener() {
  53.             @Override
  54.             public void onClick(View v) {
  55.                 // TODO Auto-generated method stub
  56.                 final LinearLayout layout = (LinearLayout) mInflater.inflate(R.layout.dialog_detail, null);
  57.                 final Dialog dialog = new Dialog(mContext);
  58.                 dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
  59.                 dialog.setContentView(layout);
  60.                 dialog.show();
  61.                 
  62.                 final ImageView imageView = (ImageView) layout.findViewById(R.id.dialog_detail_big_image);
  63.                 new AsyncImageLoader(mContext).downloadImage(getDate.get(position).get("image").toString(),true,
  64.                         new ImageCallback() {
  65.                             @Override
  66.                             public void onImageLoaded(Bitmap bitmap, String imageUrl) {
  67.                                 // TODO Auto-generated method stub
  68.                                 imageView.setImageBitmap(bitmap);
  69.                             }
  70.                         });
  71.                 
  72.                 TextView textViewPrice = (TextView)layout.findViewById(R.id.dialog_detail_single_price);
  73.                 textViewPrice.setText(holder.price.getText().toString());
  74.                 
  75.                 TextView textViewNum = (TextView) layout.findViewById(R.id.count);
  76.                 textViewNum.setText(holder.numTextView.getText().toString());
  77.                 
  78.                 layout.findViewById(R.id.dialog_detail_close).setOnClickListener(new OnClickListener() {
  79.                     @Override
  80.                     public void onClick(View v) {
  81.                         // TODO Auto-generated method stub
  82.                         dialog.dismiss();
  83.                     }
  84.                 });
  85.                 layout.findViewById(R.id.dialog_detail_addcart).setOnClickListener(new OnClickListener() {
  86.                     @Override
  87.                     public void onClick(View v) {
  88.                         // TODO Auto-generated method stub
  89.                         dialog.dismiss();
  90.                     }
  91.                 });
  92.                 final TextView textViewin = (TextView) layout.findViewById(R.id.count);
  93.                 layout.findViewById(R.id.plus_btn).setOnClickListener(new OnClickListener() {
  94.                     @Override
  95.                     public void onClick(View v) {
  96.                         // TODO Auto-generated method stub
  97.                         holder.plusButton.callOnClick();
  98.                         textViewin.setText(holder.numTextView.getText().toString());
  99.                     }
  100.                 });
  101.                 layout.findViewById(R.id.minus_btn).setOnClickListener(new OnClickListener() {
  102.                     
  103.                     @Override
  104.                     public void onClick(View v) {
  105.                         // TODO Auto-generated method stub
  106.                         holder.minusButton.callOnClick();
  107.                         textViewin.setText(holder.numTextView.getText().toString());
  108.                     }
  109.                 });
  110.                 
  111.             }
  112.         });

  113. //        String imgUrl = getDate.get(position).get("image").toString();
  114. // AsyncImageLoader loader = new AsyncImageLoader(mContext);
  115. // //将图片缓存至外部文件中
  116. // loader.setCache2File(true);    //false
  117. // //设置外部缓存文件夹
  118. // loader.setCachedDir(mContext.getCacheDir().getAbsolutePath());
  119.         
  120.         //下载图片,第二个参数是否缓存至内存中
  121. // loader.downloadImage(imgUrl, false, new AsyncImageLoader.ImageCallback() {
  122. //            @Override
  123. //            public void onImageLoaded(Bitmap bitmap, String imageUrl) {
  124. //                if(bitmap != null){
  125. //                    holder.image.setImageBitmap(bitmap);
  126. //                }else{
  127. //                    //下载失败,设置默认图片
  128. //                    holder.image.setImageResource(R.drawable.about_logo);
  129. //                }
  130. //            }
  131. //        });
  132.         new AsyncImageLoader(mContext).downloadImage(getDate.get(position).get("image").toString(),true,
  133.                 new ImageCallback() {
  134.                     @Override
  135.                     public void onImageLoaded(Bitmap bitmap, String imageUrl) {
  136.                         // TODO Auto-generated method stub
  137.                         holder.image.setImageBitmap(bitmap);
  138.                     }
  139.                 });
  140.         
  141.         holder.name.setText(getDate.get(position).get("name")
  142.                 .toString());
  143.         holder.price.setText(getDate.get(position).get("price")
  144.                 .toString());
  145.         holder.numTextView.setText(String.valueOf(CartData.findCart(position)));
  146.         holder.plusButton.setOnClickListener(new OnClickListener() {
  147.             @Override
  148.             public void onClick(View v) {
  149.                 // TODO Auto-generated method stub
  150.                 int num = Integer.parseInt(holder.numTextView.getText()
  151.                         .toString()) + 1;
  152.                 holder.numTextView.setText(String.valueOf(num));

  153.                 CartData.editCart(getDate.get(position).get("id").toString(),
  154.                         getDate.get(position).get("name").toString(),
  155.                         getDate.get(position).get("price").toString(),
  156.                         String.valueOf(num),
  157.                         getDate.get(position).get("image").toString());

  158.             }
  159.         });
  160.         holder.minusButton.setOnClickListener(new OnClickListener() {

  161.             @Override
  162.             public void onClick(View v) {
  163.                 // TODO Auto-generated method stub
  164.                 int num = Integer.parseInt(holder.numTextView.getText()
  165.                         .toString()) - 1;
  166.                 if (num >= 0) {
  167.                     holder.numTextView.setText(String.valueOf(num));
  168.                     if (num == 0) {
  169.                         CartData.removeCart(getDate.get(position)
  170.                                 .get("id").toString());
  171.                     } else {
  172.                         CartData.editCart(getDate.get(position).get("id").toString(),
  173.                                 getDate.get(position).get("name").toString(),
  174.                                 getDate.get(position).get("price").toString(),
  175.                                 String.valueOf(num),
  176.                                 getDate.get(position).get("image").toString());
  177.                     }

  178.                 }
  179.             }
  180.         });
  181.         
  182.         return convertView;
  183.     }

  184. }

 原文详情地址:

wemall-mobile商城详情地址:

wemall官网地址:

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

阅读(456) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~