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

import com.inuoer.util.AsyncImageLoader.ImageCallback;
import com.inuoer.wemall.R;

public class MainAdapter extends BaseAdapter {

	private LayoutInflater mInflater;// 得到一个LayoutInfalter对象用来导入布局
	private ArrayList<Map<String, Object>> getDate;
	private Context mContext;

	public MainAdapter(Context context , ArrayList<Map<String, Object>> getDate) {
		this.mContext = context;
		this.mInflater = LayoutInflater.from(context);
		this.getDate = getDate;
	}

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

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

	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return position;
	}

	@SuppressLint("NewApi")
	@Override
	public View getView(final int position, View convertView,
			ViewGroup parent) {
		// TODO Auto-generated method stub
		final ViewHolder holder;
		if (convertView == null) {
			holder = new ViewHolder();
			convertView = mInflater.inflate(R.layout.itemlist_shop, null);
			holder.image = (ImageView) convertView
					.findViewById(R.id.itemlist_image);
			holder.name = (TextView) convertView
					.findViewById(R.id.itemlist_shopname);
			holder.price = (TextView) convertView
					.findViewById(R.id.waimai_shopmenu_adapter_item_price);
			holder.plusButton = (ImageButton) convertView
					.findViewById(R.id.plus_btn);
			holder.minusButton = (ImageButton) convertView
					.findViewById(R.id.minus_btn);
			holder.numTextView = (TextView) convertView
					.findViewById(R.id.count);
			convertView.setTag(holder);// 绑定ViewHolder对象
		} else {
			holder = (ViewHolder) convertView.getTag();// 取出ViewHolder对象
		}

		convertView.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				final LinearLayout layout = (LinearLayout) mInflater.inflate(R.layout.dialog_detail, null);
				final Dialog dialog = new Dialog(mContext);
				dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
				dialog.setContentView(layout);
				dialog.show();

				final ImageView imageView = (ImageView) layout.findViewById(R.id.dialog_detail_big_image);
				new AsyncImageLoader(mContext).downloadImage(getDate.get(position).get("image").toString(),true,
						new ImageCallback() {
							@Override
							public void onImageLoaded(Bitmap bitmap, String imageUrl) {
								// TODO Auto-generated method stub
								imageView.setImageBitmap(bitmap);
							}
						});

				TextView textViewPrice = (TextView)layout.findViewById(R.id.dialog_detail_single_price);
				textViewPrice.setText(holder.price.getText().toString());

				TextView textViewNum = (TextView) layout.findViewById(R.id.count);
				textViewNum.setText(holder.numTextView.getText().toString());

				layout.findViewById(R.id.dialog_detail_close).setOnClickListener(new OnClickListener() {
					@Override
					public void onClick(View v) {
						// TODO Auto-generated method stub
						dialog.dismiss();
					}
				});
				layout.findViewById(R.id.dialog_detail_addcart).setOnClickListener(new OnClickListener() {
					@Override
					public void onClick(View v) {
						// TODO Auto-generated method stub
						dialog.dismiss();
					}
				});
				final TextView textViewin = (TextView) layout.findViewById(R.id.count);
				layout.findViewById(R.id.plus_btn).setOnClickListener(new OnClickListener() {
					@Override
					public void onClick(View v) {
						// TODO Auto-generated method stub
						holder.plusButton.callOnClick();
						textViewin.setText(holder.numTextView.getText().toString());
					}
				});
				layout.findViewById(R.id.minus_btn).setOnClickListener(new OnClickListener() {

					@Override
					public void onClick(View v) {
						// TODO Auto-generated method stub
						holder.minusButton.callOnClick();
						textViewin.setText(holder.numTextView.getText().toString());
					}
				});

			}
		});

//		String imgUrl = getDate.get(position).get("image").toString();
//        AsyncImageLoader loader = new AsyncImageLoader(mContext);
//        //将图片缓存至外部文件中
//        loader.setCache2File(true);	//false
//        //设置外部缓存文件夹
//        loader.setCachedDir(mContext.getCacheDir().getAbsolutePath());

        //下载图片,第二个参数是否缓存至内存中
//        loader.downloadImage(imgUrl, false, new AsyncImageLoader.ImageCallback() {
//			@Override
//			public void onImageLoaded(Bitmap bitmap, String imageUrl) {
//				if(bitmap != null){
//					holder.image.setImageBitmap(bitmap);
//				}else{
//					//下载失败,设置默认图片
//					holder.image.setImageResource(R.drawable.about_logo);
//				}
//			}
//		});
		new AsyncImageLoader(mContext).downloadImage(getDate.get(position).get("image").toString(),true,
				new ImageCallback() {
					@Override
					public void onImageLoaded(Bitmap bitmap, String imageUrl) {
						// TODO Auto-generated method stub
						holder.image.setImageBitmap(bitmap);
					}
				});

		holder.name.setText(getDate.get(position).get("name")
				.toString());
		holder.price.setText(getDate.get(position).get("price")
				.toString());
		holder.numTextView.setText(String.valueOf(CartData.findCart(position)));
		holder.plusButton.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				int num = Integer.parseInt(holder.numTextView.getText()
						.toString()) + 1;
				holder.numTextView.setText(String.valueOf(num));

				CartData.editCart(getDate.get(position).get("id").toString(),
						getDate.get(position).get("name").toString(),
						getDate.get(position).get("price").toString(),
						String.valueOf(num),
						getDate.get(position).get("image").toString());

			}
		});
		holder.minusButton.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				int num = Integer.parseInt(holder.numTextView.getText()
						.toString()) - 1;
				if (num >= 0) {
					holder.numTextView.setText(String.valueOf(num));
					if (num == 0) {
						CartData.removeCart(getDate.get(position)
								.get("id").toString());
					} else {
						CartData.editCart(getDate.get(position).get("id").toString(),
								getDate.get(position).get("name").toString(),
								getDate.get(position).get("price").toString(),
								String.valueOf(num),
								getDate.get(position).get("image").toString());
					}

				}
			}
		});

		return convertView;
	}

}

  

原文详情地址:http://git.oschina.net/einsqing/wemall-mobile

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

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

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

wemall app商城源码中实现带图片和checkbox的listview的更多相关文章

  1. wemall app商城源码中android按钮的三种响应事件

    wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码中android按 ...

  2. wemall app商城源码中基于JAVA的Android异步加载图片管理器代码

    wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中 ...

  3. wemall app商城源码中基于JAVA的绑定和处理fragments和viewpager之间的逻辑关系代码

    wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中 ...

  4. wemall app商城源码中基于PHP的ThinkPHP惯例配置文件代码

    wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中 ...

  5. wemall app商城源码中基于JAVA通过Http请求获取json字符串的代码

    wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.分享其中关于通过Http请求获取json字符串的代码供 ...

  6. wemall app商城源码中ScrollView中嵌套ListView主要代码

    很多时间我们在scorllview中嵌入listview的时候,都只能看到listview显示一行数据,而我们的要求是显示多行,即我们数据的行数, 当ListView的高度设定一定的值时,ListVi ...

  7. wemall app商城源码中基于PHP的通用的树型类代码

    wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中 ...

  8. wemall app商城源码Android之支付宝通知处理类

    wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之处 ...

  9. wemall app商城源码Android之支付宝接口公用函数

    wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之  ...

随机推荐

  1. treegrid.bootstrap使用说明

    treegrid.bootstrap使用说明 这个插件是用来做有层次的表格的,大概如图: 官网  http://maxazan.github.io/jquery-treegrid/ 使用这个控件之前需 ...

  2. xtemplate语法

    XTemplate 是富逻辑的 KISSY 模板引擎,面向复杂的业务逻辑场景,同时保持高性能和丰富的配置方法,是易学易懂的模板语言. 一个典型的XTemplate模板实例: Hello {{name} ...

  3. java操作redis redis连接池

    redis作为缓存型数据库,越来越受到大家的欢迎,这里简单介绍一下java如何操作redis. 1.java连接redis java通过需要jedis的jar包获取Jedis连接. jedis-2.8 ...

  4. DTLS-PSK算法抓包解析

    一.DTLS -PSK PSK 是DTLS 定义的密钥交换方案之一,相对于公钥证书方案(如 ECDHA_RSA) 来说,其具备更加轻量化.高效的优点: 而目前 PSK方案应用也比较广泛. 关于DTLS ...

  5. Java性能优化_转载

    一.避免在循环条件中使用复杂表达式 1.在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快. 2.不可使用多层循嵌套. 二.集合大 ...

  6. mysql学习之权限管理

    数据库权限的意义: 为了保证数据库中的业务数据不被非授权的用户非法窃取,需要对数据库的访问者进行各种限制,而数据库安全性控制措施主要有这三种,第一种用户身份鉴别,手段可以是口令,磁卡,指纹等技术,只有 ...

  7. Linux下connect超时处理【总结】

    1.前言 最近在写一个测试工具,要求快速的高效率的扫描出各个服务器开放了哪些端口.当时想了一下,ping只能检测ip,判断服务器的网络是连通的,而不能判断是否开放了端口.我们知道端口属于网络的应用层, ...

  8. 网易云直播SDK使用总结

    前言: 最近公司的项目中加入中直播这部分的功能,现在的直播平台真的很多很多,以前在朋友圈看到过这张图片,没办法一次性给大家看,就只能这样截成几张给大家看看.其实按照我自己的看法,现在的直播已经没办法做 ...

  9. 普通用户创建ssh无密码访问

    jenkins:120.145.120.76 ubuntu:kasumi msc1:10.25.164.100 ubuntu:kasumi 1.创建普通用户&修改密码: $useradd ub ...

  10. 学生管理系统(C语言)

    #include <stdio.h> #include <stdlib.h> #include <string.h> #define N 3 #define LEN ...