原生android,高仿大众点评商家列表;

首先欢迎大家关注我 http://weibo.com/u/2841033197

废话不多说了,上代码,效果图

适配器

class MyAdapter extends BaseAdapter {
protected final int mItemLayoutId;
List<Businesses> data = new ArrayList<Businesses>();
private Context context;
private LayoutInflater inflater;
private ImageScaleType imageScaleType;
private DisplayImageOptions options;

public MyAdapter(List<Businesses> data, Context cxt, int itemLayoutId, ImageScaleType imageScaleType) {
this.data = data;
this.context = cxt;
this.mItemLayoutId = itemLayoutId;
this.inflater = LayoutInflater.from(context);
this.imageScaleType = imageScaleType;
init();
}

/** 初始化图片缓存 options **/
private void init() {
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.thumb)
// .showImageOnFail(R.drawable.ic_error)
.cacheInMemory(true)
.cacheOnDisk(true)
.considerExifParams(true)
.imageScaleType(imageScaleType != null ? imageScaleType: ImageScaleType.EXACTLY)
.delayBeforeLoading(10)
.displayer(new SimpleBitmapDisplayer())// //正常显示一张图片 
.build();
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return data != null ? data.size() : 0;
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return data != null ? data.get(position) : null;
}

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

@Override
public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holder = getViewHolder(position, convertView, parent);
TextView business_id_tv = holder.getView(R.id.business_id_tv);
TextView name_tv = holder.getView(R.id.name_tv);
TextView avg_price_tv = holder.getView(R.id.avg_price_tv);
TextView regions_tv = holder.getView(R.id.regions_tv);
TextView distance_tv = holder.getView(R.id.distance_tv);

String s_photo_url = data.get(position).getS_photo_url();
String rating_s_img_url = data.get(position).getRating_img_url();
int business_id = data.get(position).getBusiness_id();
String name = data.get(position).getName();
String branch_name = data.get(position).getBranch_name();
int avg_price = data.get(position).getAvg_price();
String regions = data.get(position).getRegions();
String categories = data.get(position).getCategories();
int distance = data.get(position).getDistance();

holder.displayImages(R.id.s_photo_url_iv, s_photo_url);
holder.displayImages(R.id.star_iv, rating_s_img_url);

business_id_tv.setText("" + business_id);
name = name.substring(0, name.indexOf("("));
if (!StringUtils.isEmpty(branch_name)) {
name = name + "(" +branch_name +")";
}
name_tv.setText(name);
if (avg_price > 0) {
avg_price_tv.setText("¥" + avg_price +"/人");
}
// 过滤下数据
regions = regions.replace("\"", "").replace("[", "").replace("]", "").split(",")[1];
categories = categories.replace("\"", "").replace("[", "").replace("]", "");
regions_tv.setText(regions + " " + categories);
if (distance > 0) {
float die = distance;
DecimalFormat decimalFormat=new DecimalFormat(".0");
if(die >= 1000) {
// 大于1000 米 转化为千米展示数据
die /= 1000;
String temp_die = decimalFormat.format(die);
temp_die = temp_die.replace(".0", "");
distance_tv.setText(temp_die +"km" );
} else {
distance_tv.setText(distance +"m" );
}
}

setClick(data, holder.getConvertView(), position);
return holder.getConvertView();
}

private ViewHolder getViewHolder(int position, View convertView,
ViewGroup parent) {
return ViewHolder.get(context, convertView, parent, mItemLayoutId,
position, options);
}

private void setClick(final List<Businesses> datas, final View convertView,
final int position) {
convertView.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
int business_ids = datas.get(position).getBusiness_id();
String keywords = "";
try {
keywords = URLEncoder.encode("" + business_ids, "UTF-8");
Uri url = Uri.parse("dianping://shopinfo?id=" + keywords);
Intent intent = new Intent(Intent.ACTION_VIEW, url);
context.startActivity(intent);
} catch (Exception e) {
// 没有安装应用,默认打开HTML5站
Intent intent = new Intent(Intent.ACTION_VIEW, Uri
.parse("http://m.dianping.com/search.aspx?skey="
+ keywords));
context.startActivity(intent);

}

}
});
}

源码本人放在我的常用博客上了, 传送门

更多相关文章

  1. 修改android 默认设置
  2. Android实现ImageView图片双击放大及缩小
  3. android拍照后bitmap显示问题
  4. Android(安卓)中使用 AsyncTask 异步读取网络图片
  5. Android:TabWidget
  6. android p状态栏,插入sim卡,关闭数据流量,状态栏卡图标右下角有X图标
  7. android 压缩图片、生成缩略图 和转换Base64格式的字符串
  8. android 图片的 放大 缩小 移动
  9. Android(安卓)中的数据库操作

随机推荐

  1. Android 网络开发抓包工具Fiddler、tcpdu
  2. Docker_学习笔记系列之网络
  3. Docker_学习笔记系列之数据卷
  4. 【网站模板】第01期—15套免费网站后台管
  5. CI/CD笔记-Jenkins的安装部署
  6. 「CI集成」基于Jest Mock API对业务逻辑
  7. Docker_学习笔记系列之仓库
  8. linux_学习之防火墙firewalld
  9. Docker_学习笔记系列之镜像
  10. CI/CD笔记-Gitlab安装部署