package com.withiter.quhao.adapter; import java.util.List; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.os.Looper; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.ListView; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; 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.activity.MerchantDetailActivity; import com.withiter.quhao.activity.QuhaoCurrentStatesActivity; import com.withiter.quhao.exception.NoResultFromHTTPRequestException; import com.withiter.quhao.util.ActivityUtil; import com.withiter.quhao.util.StringUtils; import com.withiter.quhao.util.http.CommonHTTPRequest; import com.withiter.quhao.util.tool.AsynImageLoader; import com.withiter.quhao.util.tool.ProgressDialogUtil; import com.withiter.quhao.vo.ReservationVO; public class ReservationForCurrentPaiduiAdapter extends BaseAdapter { private ListView listView; public List<ReservationVO> rvos; private QuhaoCurrentStatesActivity activity; private ProgressDialogUtil progress; private DisplayImageOptions options; private ImageLoadingListener animateFirstListener; public ReservationForCurrentPaiduiAdapter(QuhaoCurrentStatesActivity activity, ListView listView, List<ReservationVO> rvos,DisplayImageOptions options,ImageLoadingListener animateFirstListener) { super(); this.activity = activity; this.listView = listView; this.rvos = rvos; this.options = options; this.animateFirstListener = animateFirstListener; } @Override public int getCount() { return rvos.size(); } @Override public Object getItem(int position) { return rvos.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ReservationVO rvo = (ReservationVO) getItem(position); synchronized (rvo) { ViewHolderCurrentPaidui holder = null; if (convertView == null) { holder = new ViewHolderCurrentPaidui(); LayoutInflater inflator = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflator.inflate(R.layout.paidui_current_list_item, null); holder.merchantImg = (ImageView) convertView.findViewById(R.id.merchantImg); holder.merchantName = (TextView) convertView.findViewById(R.id.merchantName); holder.myNumber = (TextView) convertView.findViewById(R.id.myNumber); holder.beforeYou = (TextView) convertView.findViewById(R.id.beforeYou); holder.cancelBtn = (Button) convertView.findViewById(R.id.btn_cancel); holder.youhuiLayout = (RelativeLayout) convertView.findViewById(R.id.layout_top_youhui); } if (holder == null) { holder = (ViewHolderCurrentPaidui) convertView.getTag(); } final String merchantId = rvo.merchantId; // if merchant has no image, set no_logo as default if(StringUtils.isNull(rvo.merchantImage)){ holder.merchantImg.setImageResource(R.drawable.no_logo); } String merchantImg = rvo.merchantImageBig; // holder.merchantImg.setImageResource(R.drawable.no_logo); // AsynImageLoader.getInstance().showImageAsyn(holder.merchantImg,position, merchantImg, R.drawable.no_logo); ImageLoader.getInstance().displayImage(merchantImg, holder.merchantImg, options, animateFirstListener); holder.merchantImg.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { progress = new ProgressDialogUtil(activity, R.string.empty, R.string.waitting, false); progress.showProgress(); Intent intent = new Intent(activity, MerchantDetailActivity.class); intent.putExtra("merchantId", merchantId); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); activity.startActivity(intent); progress.closeProgress(); } }); holder.merchantName.setTag("merchantNamer_" + position); holder.merchantName.setText(rvo.merchantName); holder.myNumber.setTag("myNumber_" + position); holder.myNumber.setText(rvo.myNumber); holder.beforeYou.setTag("beforeYou_" + position); holder.beforeYou.setText(rvo.beforeYou); final String reservationId = rvo.rId; holder.cancelBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (!ActivityUtil.isNetWorkAvailable(activity)) { Toast.makeText(activity, R.string.network_error_info, Toast.LENGTH_SHORT).show(); return; } cancelListener(reservationId); } }); if (rvo.youhui) { holder.youhuiLayout.setVisibility(View.VISIBLE); } else { holder.youhuiLayout.setVisibility(View.GONE); } convertView.setTag(holder); return convertView; } } private void cancelListener(final String reservationId) { AlertDialog.Builder builder = new Builder(activity); builder.setTitle("温馨提示"); builder.setMessage("您确定要取消该号码吗?"); builder.setPositiveButton("确认", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); Thread thread = new Thread(new Runnable() { @Override public void run() { Looper.prepare(); progress = new ProgressDialogUtil(activity, R.string.empty, R.string.waitting, false); progress.showProgress(); try { if (!ActivityUtil.isNetWorkAvailable(activity)) { Toast.makeText(activity, R.string.network_error_info, Toast.LENGTH_SHORT).show(); progress.closeProgress(); return; } String url = ""; url = "cancel?reservationId=" + reservationId; String buf = CommonHTTPRequest.get(url); if (StringUtils.isNull(buf) || "[]".equals(buf)) { throw new NoResultFromHTTPRequestException(); } else { if("true".equals(buf.trim())) { activity.initData(); } else { activity.initData(); } } } catch (Exception e) { e.printStackTrace(); } finally { progress.closeProgress(); Looper.loop(); } }}); thread.start(); }}); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.create().show(); } }