package com.withiter.quhao.adapter; import java.util.List; import android.app.Activity; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.listener.ImageLoadingListener; import com.withiter.quhao.R; import com.withiter.quhao.util.QuhaoLog; import com.withiter.quhao.util.StringUtils; import com.withiter.quhao.util.tool.AsynImageLoader; import com.withiter.quhao.vo.Merchant; public class MerchantSearchAdapter extends BaseAdapter { private ListView listView; public List<Merchant> merchants; private static String TAG = MerchantSearchAdapter.class.getName(); private DisplayImageOptions options; private ImageLoadingListener animateFirstListener; public MerchantSearchAdapter(Activity activity, ListView listView, List<Merchant> merchants,DisplayImageOptions options,ImageLoadingListener animateFirstListener) { super(); this.listView = listView; this.merchants = merchants; this.options = options; this.animateFirstListener = animateFirstListener; } @Override public int getCount() { return merchants.size(); } @Override public Object getItem(int position) { return merchants.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { Merchant merchant = (Merchant) getItem(position); synchronized (merchant) { ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); LayoutInflater inflator = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflator.inflate(R.layout.merchant_search_list_item, null); holder.img = (ImageView) convertView.findViewById(R.id.img); holder.img.setAdjustViewBounds(true); holder.content = (TextView) convertView.findViewById(R.id.merchantName); // holder.distance = (TextView) convertView.findViewById(R.id.distance); holder.youhui = (ImageView) convertView.findViewById(R.id.youhui); holder.quhao = (ImageView) convertView.findViewById(R.id.quhao); // holder.pinfenImage = (ImageView) convertView.findViewById(R.id.pingfen); holder.merchantRenjun = (TextView) convertView.findViewById(R.id.merchantRenjun); } if (holder == null) { holder = (ViewHolder) convertView.getTag(); } String imageUrl = merchant.merchantImage; QuhaoLog.i(TAG, "merchant adapter's imageUrl : " + imageUrl); // holder.img.setTag(imageUrl + position); // holder.img.setImageResource(R.drawable.no_logo); // AsynImageLoader.getInstance().showImageAsyn(holder.img, position,imageUrl, R.drawable.no_logo); ImageLoader.getInstance().displayImage(imageUrl, holder.img, options, animateFirstListener); holder.content.setTag("content_" + position); holder.content.setText(merchant.name); holder.youhui.setTag("youhui_" + position); if(merchant.youhuiExist) { holder.youhui.setVisibility(View.VISIBLE); holder.youhui.setImageResource(R.drawable.ic_youhui); } else { holder.youhui.setVisibility(View.GONE); } holder.quhao.setTag("quhao_" + position); if(merchant.enable) { holder.quhao.setVisibility(View.VISIBLE); holder.quhao.setImageResource(R.drawable.ic_quhao); } else { holder.quhao.setVisibility(View.GONE); } /* holder.distance.setTag("distance_" + position); if(merchant.distance != 0) { if(merchant.distance>1000) { NumberFormat nf = NumberFormat.getNumberInstance(); nf.setMaximumFractionDigits(1); holder.distance.setText(nf.format(merchant.distance/1000) + "km"); } else { holder.distance.setText(String.valueOf((int)merchant.distance) + "m"); } // holder.distance.setText(String.valueOf(DistanceUtil.computeDistance(lp.getLatitude(), lp.getLongitude(), merchant.lat, merchant.lng))); } else { holder.distance.setText("未定位"); } */ /* AMapLocation location = QHClientApplication.getInstance().location; if(null != location && merchant.lat != 0 && merchant.lng != 0) { double distance = DistanceUtil.computeDistance(location.getLatitude(), location.getLongitude(), merchant.lat, merchant.lng); if(distance>1000) { NumberFormat nf = NumberFormat.getNumberInstance(); nf.setMaximumFractionDigits(2); holder.distance.setText(nf.format(distance/1000) + "千米"); } else { holder.distance.setText(String.valueOf((int)distance) + "米"); } // holder.distance.setText(String.valueOf(DistanceUtil.computeDistance(lp.getLatitude(), lp.getLongitude(), merchant.lat, merchant.lng))); } else { holder.distance.setText("没有定位信息,暂时无法显示距离"); } */ /* if (StringUtils.isNull(merchant.grade)) { merchant.grade = "0.0"; } else { merchant.grade = merchant.grade.replace("%", ""); } QuhaoLog.i(TAG, merchant.grade); float score = Float.parseFloat(merchant.grade) / 100; if (score == 0.0f) { holder.pinfenImage.setImageResource(R.drawable.star00); } if (score > 0.0f && score < 1.0f) { holder.pinfenImage.setImageResource(R.drawable.star05); } if (score == 1.0f) { holder.pinfenImage.setImageResource(R.drawable.star10); } if (score > 1.0f && score < 2.0f) { holder.pinfenImage.setImageResource(R.drawable.star15); } if (score == 2.0f) { holder.pinfenImage.setImageResource(R.drawable.star20); } if (score > 2.0f && score < 3.0f) { holder.pinfenImage.setImageResource(R.drawable.star25); } if (score == 3.0f) { holder.pinfenImage.setImageResource(R.drawable.star30); } if (score > 3.0f && score < 4.0f) { holder.pinfenImage.setImageResource(R.drawable.star35); } if (score == 4.0f) { holder.pinfenImage.setImageResource(R.drawable.star40); } if (score > 4.0f && score < 5.0f) { holder.pinfenImage.setImageResource(R.drawable.star45); } if (score == 5.0f) { holder.pinfenImage.setImageResource(R.drawable.star50); } */ if (StringUtils.isNull(merchant.averageCost)) { holder.merchantRenjun.setText("人均:暂无"); } else { holder.merchantRenjun.setText("人均:¥" + merchant.averageCost); } convertView.setTag(holder); return convertView; } } class ViewHolder { ImageView img; TextView content; ImageView youhui; ImageView quhao; // ImageView pinfenImage; TextView merchantRenjun; // TextView distance; } }