package com.withiter.quhao.adapter;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.text.Html;
import android.text.method.ScrollingMovementMethod;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import com.withiter.quhao.R;
import com.withiter.quhao.activity.CreditCostListActivity;
import com.withiter.quhao.activity.MerchantDetailActivity;
import com.withiter.quhao.util.StringUtils;
import com.withiter.quhao.vo.Credit;
public class CreditAdapter extends BaseAdapter {
private ListView listView;
public List<Credit> credits;
private static String TAG = CreditAdapter.class.getName();
public String isShowDelete;
private Activity activity;
public CreditAdapter(Activity activity, ListView listView, List<Credit> credits) {
super();
this.listView = listView;
this.credits = credits;
this.activity = activity;
this.isShowDelete = "false";
}
@Override
public int getCount() {
return credits.size();
}
@Override
public Object getItem(int position) {
return credits.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Credit credit = (Credit) getItem(position);
synchronized (credit) {
CreditCostHolder holder = null;
if (convertView == null) {
holder = new CreditCostHolder();
LayoutInflater inflator = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflator.inflate(R.layout.credit_cost_list_item, null);
holder.merchantName = (TextView) convertView.findViewById(R.id.merchantName);
holder.desc = (TextView) convertView.findViewById(R.id.description);
holder.date = (TextView) convertView.findViewById(R.id.date);
holder.cbLayout = (LinearLayout) convertView.findViewById(R.id.cb_layout);
holder.cb = (CheckBox) convertView.findViewById(R.id.item_cb);
holder.creditLayout = (LinearLayout) convertView.findViewById(R.id.credit_layout);
}
if (holder == null) {
holder = (CreditCostHolder) convertView.getTag();
}
if("true".equals(isShowDelete))
{
holder.cbLayout.setVisibility(View.VISIBLE);
holder.cb.setVisibility(View.VISIBLE);
holder.cb.setChecked("true".equals(credit.isChecked));
}
else
{
holder.cb.setVisibility(View.GONE);
holder.cbLayout.setVisibility(View.GONE);
}
if(StringUtils.isNotNull(credit.merchantName))
{
convertView.findViewById(R.id.merchantLayout).setVisibility(View.VISIBLE);
holder.merchantName.setTag("merchantName_" + position);
holder.merchantName.setText(credit.merchantName);
}
else
{
holder.merchantName.setTag("merchantName_" + position);
holder.merchantName.setText("");
}
// 取消号码增加积分
if ("canceled".equals(credit.status)) {
String html="<html><body>取消号码,系统返还<big><font color=\"#f8bd09\">1</font></big>积分。"
+"</body></html>";
holder.desc.setMovementMethod(ScrollingMovementMethod.getInstance());//滚动
holder.desc.setText(Html.fromHtml(html));
}
// 取号消费积分
if ("getNumber".equals(credit.status)) {
String html="<html><body>取号,减少<big><font color=\"#f8bd09\">1</font></big>积分。"
+"</body></html>";
holder.desc.setMovementMethod(ScrollingMovementMethod.getInstance());//滚动
holder.desc.setText(Html.fromHtml(html));
}
// 完成消费返还积分
if ("finished".equals(credit.status)) {
String html="<html><body>消费成功,获得<big><font color=\"#f8bd09\">1</font></big>积分。"
+"</body></html>";
holder.desc.setMovementMethod(ScrollingMovementMethod.getInstance());//滚动
holder.desc.setText(Html.fromHtml(html));
}
// 评论增加积分
if ("comment".equals(credit.status)) {
String html="<html><body>评论,增加<big><font color=\"#f8bd09\">1</font></big>积分。"
+"</body></html>";
holder.desc.setMovementMethod(ScrollingMovementMethod.getInstance());//滚动
holder.desc.setText(Html.fromHtml(html));
}
if ("exchange".equals(credit.status)) {
holder.merchantName.setText("亲,恭喜!");
String html="<html><body>签到满5次,获得<big><font color=\"#f8bd09\">1</font></big>积分。"
+"</body></html>";
holder.desc.setMovementMethod(ScrollingMovementMethod.getInstance());//滚动
holder.desc.setText(Html.fromHtml(html));
}
//其实过期是没有积分消费记录增加的。也就是说数据库中不可能有这样的数据
if ("expired".equals(credit.status)) {
holder.desc.setText("号码过期,无积分返还。");
}
holder.desc.setTag("status_" + position);
holder.date.setTag("created_" + position);
holder.date.setText(credit.created);
final String merchantId = credit.merchantId;
holder.creditLayout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(StringUtils.isNotNull(merchantId))
{
Intent intent = new Intent();
intent.putExtra("merchantId", merchantId);
intent.setClass(activity, MerchantDetailActivity.class);
activity.startActivity(intent);
}
else
{
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();
}
});
builder.create().show();
}
}
});
convertView.setTag(holder);
return convertView;
}
}
}