wemall app商城源码中实现带图片和checkbox的listview
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的更多相关文章
- wemall app商城源码中android按钮的三种响应事件
wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码中android按 ...
- wemall app商城源码中基于JAVA的Android异步加载图片管理器代码
wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中 ...
- wemall app商城源码中基于JAVA的绑定和处理fragments和viewpager之间的逻辑关系代码
wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中 ...
- wemall app商城源码中基于PHP的ThinkPHP惯例配置文件代码
wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中 ...
- wemall app商城源码中基于JAVA通过Http请求获取json字符串的代码
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.分享其中关于通过Http请求获取json字符串的代码供 ...
- wemall app商城源码中ScrollView中嵌套ListView主要代码
很多时间我们在scorllview中嵌入listview的时候,都只能看到listview显示一行数据,而我们的要求是显示多行,即我们数据的行数, 当ListView的高度设定一定的值时,ListVi ...
- wemall app商城源码中基于PHP的通用的树型类代码
wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中 ...
- wemall app商城源码Android之支付宝通知处理类
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之处 ...
- wemall app商城源码Android之支付宝接口公用函数
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之 ...
随机推荐
- Sql server2014 内存优化表 本地编译存储过程
参考文献:http://www.infoq.com/cn/news/2013/09/Compiled-Queries http://www.bianceng.cn/database/SQLServer ...
- js制作ppt阅读文档类型
前几天开发中,客户要求在页面中展示一个类似ppt文档的一个东西,用轮播展示,但是有缩略图,和展示的大图,本想找些插件来做,后来想想,自己试下吧.. 有些简陋,但是能用,毕竟一行一行写的,留下来当笔记用 ...
- LoadRunner面试题
在LoadRunner中为什么要设置思考时间和pacing 答: 录制时记录的是客户端和服务端的交互,如果要精确模拟 用户的行为,那么客户操作客户端时花费了很多时间要怎么模拟呢?录入 填写提交的内容, ...
- css单位总结
body的font-size:14px body第二代子元素的font-size: em: 1.2em=1.2*1.2*14px rem:1.2rem=1.2*14px 视口高度:1000px ...
- Linux驱动技术(五) _设备阻塞/非阻塞读写
等待队列是内核中实现进程调度的一个十分重要的数据结构,其任务是维护一个链表,链表中每一个节点都是一个PCB(进程控制块),内核会将PCB挂在等待队列中的所有进程都调度为睡眠状态,直到某个唤醒的条件发生 ...
- React Native 之 网络请求
前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会有所 ...
- UINavigationController实现全屏滑动返回功能
说明: UINavigationController默认在push出的控制器中都有边沿滑动返回功能,但是只能从屏幕左边滑才能返回,若从屏幕中间画并没有效果.下面实现全屏滑动功能. 探究: 系统默认能够 ...
- Node - EJS模板应用(node+express+ejs)
准备工作: 工具:Webstorm 1. 新建一个文件夹为blogs(随意). 一个js文件app.js. 一个文件夹views,文件夹内一个index.ejs文件,文件夹asstes内style.c ...
- docker - 容器里安装mysql
在docker中安装mysql ubuntu官方镜像是精简的ubuntu系统,很多软件和库没有安装,所以直接安装mysql的话依赖较多,建议直接从源码编译安装mysql 通过命令行安装 先启动一个容器 ...
- [转]CentOS 6.3下Samba服务器的安装与配置
一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的 ...