/**
*
*/
package coolbuy360.adapter;
import java.util.List;
import com.baidu.mapapi.search.MKPoiInfo;
import com.baidu.mapapi.utils.DistanceUtil;
import com.baidu.platform.comapi.basestruct.GeoPoint;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import coolbuy360.searchhealth.BDrugStoreMap;
import coolbuy360.searchhealth.R;
import coolbuy360.service.CommonMethod;
import coolbuy360.service.Util;
/**
* @author yangxc
*
*/
public class BStoreListViewAdapter extends BaseAdapter {
private List<MKPoiInfo> sourcelist;
private LayoutInflater inflater;
//private OnClickListener onClickListener;
private Context _context;
GeoPoint _localpt;
public BStoreListViewAdapter(Context context,
List<MKPoiInfo> storelist) {
_context = context;
this.sourcelist = storelist;
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public void setLocalGeoPoint(GeoPoint localpt) {
_localpt = localpt;
}
@Override
public int getCount() {
return sourcelist.size();
}
@Override
public Object getItem(int position) {
return sourcelist.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = inflater.inflate(R.layout.s_store_item, null);
viewHolder.s_listview_position = (TextView) convertView
.findViewById(R.id.s_list_position_txt);
viewHolder.s_listview_name = (TextView) convertView
.findViewById(R.id.s_list_name);
viewHolder.s_listview_address = (TextView) convertView
.findViewById(R.id.s_list_address);
viewHolder.s_listview_bao = (ImageView) convertView
.findViewById(R.id.s_list_bao);
viewHolder.s_listview_ding = (ImageView) convertView
.findViewById(R.id.s_list_ding);
viewHolder.s_listview_song = (ImageView) convertView
.findViewById(R.id.s_list_song);
viewHolder.s_listview_dao = (ImageView) convertView
.findViewById(R.id.s_list_dao);
viewHolder.s_listview_v = (ImageView) convertView
.findViewById(R.id.s_list_v);
viewHolder.s_listview_hours = (ImageView) convertView
.findViewById(R.id.s_list_hours);
viewHolder.s_store_item_img_promotion = (ImageView) convertView
.findViewById(R.id.s_store_item_img_promotion);
// viewHolder.s_listview_callButton=(ImageButton)convertView.findViewById(R.id.s_list_call);
// viewHolder.s_listview_calltext = (TextView) convertView.findViewById(R.id.s_list_call_text);
viewHolder.drugstore_location_btn = (LinearLayout) convertView
.findViewById(R.id.drugstore_location_btn);
viewHolder.drugstore_phonecall_btn = (LinearLayout) convertView
.findViewById(R.id.drugstore_phonecall_btn);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
/*
* ���Ҹ�����ҩ�꣬��ҳ���ң�������ֵ��DrugStoreID��DrugStoreName��Tel��Mobile��IsTel��IsDoor��IsCOD
* ��
* IsHC��Is24Hour��IsMember��LongValue��LatValue��Address��distance��OldPrice��
* NowPrice�����м�ֵСд��
*/
viewHolder.s_listview_bao.setVisibility(View.GONE);
viewHolder.s_listview_song.setVisibility(View.GONE);
viewHolder.s_listview_dao.setVisibility(View.GONE);
viewHolder.s_listview_v.setVisibility(View.GONE);
viewHolder.s_listview_hours.setVisibility(View.GONE);
viewHolder.s_listview_ding.setVisibility(View.GONE);
viewHolder.s_store_item_img_promotion.setVisibility(View.GONE);
final MKPoiInfo itemmap = sourcelist.get(position);
String drugstorename = itemmap.name;
String address = itemmap.address;
String tel = itemmap.phoneNum;
if (!drugstorename.equals("")) {
viewHolder.s_listview_name.setText(drugstorename);
}
if (!address.equals("")) {
viewHolder.s_listview_address.setText(address);
}
if (tel!=null && !tel.equals("")) {
viewHolder.drugstore_phonecall_btn.setVisibility(View.VISIBLE);
viewHolder.drugstore_phonecall_btn.setTag(tel);
} else {
viewHolder.drugstore_phonecall_btn.setVisibility(View.GONE);
}
GeoPoint storept = itemmap.pt;
double distance = DistanceUtil.getDistance(_localpt, storept);
String distanceString = "0��";
if (distance >= 1000) {
float fdistance = Util.round(Float.parseFloat(distance/1000.00 + ""), 2);
distanceString = fdistance + "����";
} else {
distanceString = (int) distance + "��";
}
viewHolder.s_listview_position.setText(distanceString);
viewHolder.drugstore_phonecall_btn
.setOnTouchListener(new CommonMethod.setOnPressed());
viewHolder.drugstore_phonecall_btn
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO �µ簴ť�����ò��Ž���
String callNum = v.getTag().toString();
Intent intent = new Intent(Intent.ACTION_DIAL, Uri
.parse("tel:" + callNum));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
((Activity) _context).startActivity(intent);
}
});
viewHolder.drugstore_location_btn
.setOnTouchListener(new CommonMethod.setOnPressed());
viewHolder.drugstore_location_btn
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO ��λҩ�굽��ͼ
Intent mapintent = new Intent().setClass(_context,
BDrugStoreMap.class);
mapintent.putExtra("storename", itemmap.name);
mapintent.putExtra("address", itemmap.address);
mapintent.putExtra("phone", itemmap.phoneNum);
mapintent.putExtra("poilatitudee6", itemmap.pt.getLatitudeE6());
mapintent.putExtra("poilongitudee6", itemmap.pt.getLongitudeE6());
((Activity) _context).startActivity(mapintent);
}
});
return convertView;
}
private class ViewHolder {
TextView s_listview_position;
TextView s_listview_name;
TextView s_listview_address;
ImageView s_listview_bao;
ImageView s_listview_ding;
ImageView s_listview_song;
ImageView s_listview_dao;
ImageView s_listview_v;
ImageView s_listview_hours;
ImageView s_store_item_img_promotion;
// ImageButton s_listview_callButton;
//TextView s_listview_calltext;
LinearLayout drugstore_location_btn;
LinearLayout drugstore_phonecall_btn;
}
public void addItem(MKPoiInfo item) {
sourcelist.add(item);
}
public void addItems(List<MKPoiInfo> list) {
for (MKPoiInfo item : list) {
sourcelist.add(item);
}
}
public void clear() {
int size = sourcelist.size();
if (size > 0) {
sourcelist.removeAll(sourcelist);
}
}
}