package com.mgw.member.ui.activity.cityleague; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.AbsListView.OnScrollListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import com.loopj.android.http.RequestParams; import com.mgw.member.R; import com.mgw.member.constant.Define_C; import com.mgw.member.ui.activity.MaterialinfoActivity; import com.mgw.member.uitls.ImageLoaderHelper; import com.mgw.member.uitls.MgqDataHandler; import com.mgw.member.uitls.MgqRestClient; public class VipmaterialActivity extends Activity { JSONArray my_Array_list = new JSONArray(); private ListView listView_vipmaterial; private Myadapter myadapter = null; private int index = 1; String cid = ""; private Button ibBack_vipmaterial; private ProgressDialog progressDialog = null; private boolean isBottom = false; private View moreView; int itemid = -1; public static boolean shouldflush; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_vipmaterial); moreView = getLayoutInflater().inflate(R.layout.footerview, null); moreView.setVisibility(View.GONE); listView_vipmaterial = (ListView) findViewById(R.id.listView_vipmaterial); ibBack_vipmaterial = (Button) findViewById(R.id.ibBack_vipmaterial); listView_vipmaterial.addFooterView(moreView); myadapter = new Myadapter(); listView_vipmaterial.setAdapter(myadapter); cid = getSharedPreferences("mgw_data", 0).getString("cid", "4301"); init(); } public void init() { ibBack_vipmaterial.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } }); listView_vipmaterial.setOnScrollListener(new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { if (isBottom && scrollState == 0) { getdata(); } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { isBottom = (firstVisibleItem + visibleItemCount == totalItemCount); } }); getdata(); } Handler m_handler = new Handler() { @Override public void handleMessage(android.os.Message msg) { switch (msg.what) { case -1: break; } }; }; // listview适配器 class Myadapter extends BaseAdapter { final int TYPE_1 = 1; final int TYPE_2 = 2; @Override public int getItemViewType(int position) { try { JSONObject item1 = (JSONObject) my_Array_list.get(position); if (item1.get("useNum").equals("0")) { return TYPE_2; } else { return TYPE_1; } } catch (JSONException e) { e.printStackTrace(); } return TYPE_1; } @Override public int getViewTypeCount() { // TODO Auto-generated method stub return 3; } @Override public int getCount() { if (my_Array_list == null) { return 0; } return my_Array_list.length(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder mHolder; if (convertView == null) { mHolder = new ViewHolder(); LayoutInflater mInflater = LayoutInflater.from(VipmaterialActivity.this); convertView = mInflater.inflate(R.layout.item_vipmaterial, null); mHolder.imageView_vipmaterialitem = (ImageView) convertView.findViewById(R.id.imageView_vipmaterialitem); mHolder.tv_vipmaterialitem_shopname = (TextView) convertView.findViewById(R.id.tv_vipmaterialitem_shopname); mHolder.tv_vipmaterialitem_distance = (TextView) convertView.findViewById(R.id.tv_vipmaterialitem_distance); mHolder.tv_vipmaterialitem_couponname = (TextView) convertView.findViewById(R.id.tv_vipmaterialitem_couponname); mHolder.tv_vipmaterialitem_number = (TextView) convertView.findViewById(R.id.tv_vipmaterialitem_number); mHolder.tv_vipmaterialitem_validstart = (TextView) convertView.findViewById(R.id.tv_vipmaterialitem_validstart); mHolder.tv_vipmaterialitem_validend = (TextView) convertView.findViewById(R.id.tv_vipmaterialitem_validend); mHolder.button_vipmaterialitem_get = (Button) convertView.findViewById(R.id.button_vipmaterialitem_get); convertView.setTag(mHolder); } else { mHolder = (ViewHolder) convertView.getTag(); } try { final JSONObject item = my_Array_list.getJSONObject(position); ImageLoaderHelper.displayImage(R.drawable.img_loading, mHolder.imageView_vipmaterialitem, item.getString("cover")); mHolder.tv_vipmaterialitem_shopname.setText(item.get("sname").toString()); mHolder.tv_vipmaterialitem_distance.setText(String.format("< %.2fkm", Double.valueOf(item.get("distance").toString()))); mHolder.tv_vipmaterialitem_couponname.setText(item.get("name").toString()); mHolder.tv_vipmaterialitem_number.setText("已领取:" + item.get("geted").toString()); mHolder.tv_vipmaterialitem_validstart.setText("有效期:" + item.get("begin").toString()); mHolder.tv_vipmaterialitem_validend.setText("—" + item.get("end").toString()); int i = Integer.parseInt(item.getString("canUse")); if (i == 1) { mHolder.button_vipmaterialitem_get.setBackgroundResource(R.drawable.bg_grey); mHolder.button_vipmaterialitem_get.setText("已领"); mHolder.button_vipmaterialitem_get.setOnClickListener(null); } if (i == 2) { mHolder.button_vipmaterialitem_get.setBackgroundResource(R.drawable.bg_grey); mHolder.button_vipmaterialitem_get.setText("已领完"); mHolder.button_vipmaterialitem_get.setOnClickListener(null); } if (i == 0) { mHolder.button_vipmaterialitem_get.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { try { itemid = position; getcoupon(item.get("coupon").toString(), item.get("begin").toString(), item.get("end").toString(), item.get("cover").toString()); } catch (JSONException e) { e.printStackTrace(); } } }); mHolder.button_vipmaterialitem_get.setBackgroundResource(R.drawable.select_slowblue2_btn); mHolder.button_vipmaterialitem_get.setText("领取"); } } catch (JSONException e) { e.printStackTrace(); } return convertView; } } class ViewHolder { public ImageView imageView_vipmaterialitem; public TextView tv_vipmaterialitem_shopname; public TextView tv_vipmaterialitem_distance; public TextView tv_vipmaterialitem_couponname; public TextView tv_vipmaterialitem_number; public TextView tv_vipmaterialitem_validstart; public Button button_vipmaterialitem_get; public TextView tv_vipmaterialitem_validend; } /** * 获取消费券数据 */ public void getdata() { if (myadapter == null) { index = 1; my_Array_list = new JSONArray(); myadapter = new Myadapter(); listView_vipmaterial.setAdapter(myadapter); } if (progressDialog == null) { progressDialog = ProgressDialog.show(this, "", "正在加载中...", true, false); progressDialog.setCancelable(false); progressDialog.setCanceledOnTouchOutside(false); } MgqDataHandler loginHandler = new MgqDataHandler(getApplicationContext(), false, true) { @Override public void onSuccess(String response) { super.onSuccess(response); try { JSONObject obj = new JSONObject(response); Log.e("json", obj.toString()); if (obj.getInt("flag") == 0) { if (obj.getString("msg").equals("未获取到相关数据") && index == 1) { Toast.makeText(VipmaterialActivity.this, "一张消费券也没有!", Toast.LENGTH_SHORT).show(); if (progressDialog != null) { progressDialog.dismiss(); progressDialog = null; } return; } JSONArray array = obj.getJSONArray("items"); int len = array.length(); if (progressDialog != null) { progressDialog.dismiss(); progressDialog = null; } int count = my_Array_list.length(); for (int i = 0; i < len; i++) { my_Array_list.put(i + count, array.getJSONObject(i)); } if (progressDialog != null) { progressDialog.dismiss(); progressDialog = null; } index++; myadapter.notifyDataSetChanged(); listView_vipmaterial.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent intent = new Intent(VipmaterialActivity.this, MaterialinfoActivity.class); try { JSONObject item = my_Array_list.getJSONObject(position); intent.putExtra("type", "vipmaterial"); intent.putExtra("coupon", item.getString("coupon")); intent.putExtra("sid", item.getString("sid")); intent.putExtra("canUse", Integer.parseInt(item.getString("canUse"))); intent.putExtra("time", item.getString("begin") + "至" + item.getString("end")); startActivity(intent); } catch (JSONException e) { e.printStackTrace(); } } }); } else { if (progressDialog != null) { progressDialog.dismiss(); progressDialog = null; } Toast.makeText(getApplicationContext(), obj.getString("msg"), Toast.LENGTH_SHORT).show(); } } catch (JSONException e) { e.printStackTrace(); } } @Override public void onFailure(Throwable ble) { } @Override public void onFinish() { if (progressDialog != null) { progressDialog.dismiss(); progressDialog = null; } } }; RequestParams params = new RequestParams(); String type = "coupon.searchcoupon"; try { JSONObject obj = new JSONObject(getSharedPreferences("mgw_data", Context.MODE_PRIVATE).getString("mgw_data", "")); params.add("type", type); params.add("userid", obj.getString("UserID")); params.add("serial", obj.getString("serial")); params.add("city", cid); params.add("posy", CityleagueActivity.m_lng + ""); params.add("posx", CityleagueActivity.m_lat + ""); params.add("index", index + ""); MgqRestClient.get(Define_C.mgw_url, params, loginHandler); } catch (JSONException e1) { e1.printStackTrace(); } } /** * 领取消费券 * * * */ public void getcoupon(String coupon, final String start, final String end, final String cover) { if (progressDialog == null) { progressDialog = ProgressDialog.show(this, "", "正在加载中...", true, false); progressDialog.setCancelable(true); progressDialog.setCanceledOnTouchOutside(false); } MgqDataHandler loginHandler = new MgqDataHandler(getApplicationContext(), false, false) { @Override public void onSuccess(String response) { super.onSuccess(response); try { JSONObject obj = new JSONObject(response); Log.e("json", obj.toString()); if (obj.getInt("flag") == 0) { if (progressDialog != null) { progressDialog.dismiss(); progressDialog = null; } Intent intent = new Intent(VipmaterialActivity.this, GetedcouponActivity.class); intent.putExtra("name", obj.getJSONObject("item").getString("name")); intent.putExtra("desc", obj.getJSONObject("item").getString("desc")); String time = start + "至" + end; intent.putExtra("time", time); intent.putExtra("coupon", obj.getJSONObject("item").getString("citem")); intent.putExtra("cover", cover); intent.putExtra("sid", obj.getJSONObject("item").getString("sid")); startActivity(intent); // Toast.makeText(getApplicationContext(), "领取成功!", // Toast.LENGTH_SHORT).show(); } else { if (progressDialog != null) { progressDialog.dismiss(); progressDialog = null; } Toast.makeText(getApplicationContext(), obj.getString("msg"), Toast.LENGTH_SHORT).show(); } } catch (JSONException e) { e.printStackTrace(); } } @Override public void onFailure(Throwable ble) { } @Override public void onFinish() { if (progressDialog != null) { progressDialog.dismiss(); progressDialog = null; } } }; RequestParams params = new RequestParams(); String type = "coupon.getcoupon"; try { JSONObject obj = new JSONObject(getSharedPreferences("mgw_data", Context.MODE_PRIVATE).getString("mgw_data", "")); params.add("type", type); params.add("userid", obj.getString("UserID")); params.add("serial", obj.getString("serial")); params.add("coupon", coupon); MgqRestClient.get(Define_C.mgw_url, params, loginHandler); } catch (JSONException e1) { e1.printStackTrace(); } } @Override protected void onRestart() { super.onRestart(); if (shouldflush) { shouldflush = false; my_Array_list = null; my_Array_list = new JSONArray(); index = 1; getdata(); } } @Override public void onActivityResult(int rc, int qc, Intent data) { super.onActivityResult(rc, qc, data); if (data != null) { if (data.hasExtra("result")) { String str = data.getStringExtra("result"); m_handler.sendEmptyMessage(-2); // ReturnFirst(); m_handler.sendEmptyMessage(-1); // ReturnSecond(); } } } }