package com.itbox.grzl.activity; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.os.Handler; import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.content.CursorLoader; import android.support.v4.content.Loader; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.ListView; import android.widget.TextView; import butterknife.ButterKnife; import butterknife.InjectView; import butterknife.OnCheckedChanged; import butterknife.OnClick; import com.activeandroid.content.ContentProvider; import com.itbox.fx.core.L; import com.itbox.fx.net.GsonResponseHandler; import com.itbox.grzl.AppContext; import com.itbox.grzl.adapter.UserLevelAdapter; import com.itbox.grzl.api.ConsultationApi; import com.itbox.grzl.bean.OrderInfoModel; import com.itbox.grzl.bean.UserLevel; import com.itbox.grzl.engine.ConsultationEngine; import com.itbox.grzl.engine.PayEngine; import com.itbox.grzl.engine.alipay.Result; import com.zhaoliewang.grzl.R; public class BuyVipActivity extends BaseActivity implements LoaderCallbacks<Cursor> { @InjectView(R.id.list) ListView listView; private ConsultationApi consultationApi; private UserLevelAdapter adapter; private View mHeaderView; @InjectView(R.id.cb_client) protected CheckBox cb_client; @InjectView(R.id.cb_web) protected CheckBox cb_web; @InjectView(R.id.tv_price) protected TextView tv_price; private boolean isClient = true; private UserLevel bean; @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); setContentView(R.layout.activity_buy_vip); setTitle("购买会员"); showLeftBackButton(); ButterKnife.inject(this); consultationApi = new ConsultationApi(); consultationApi.getUserLevel(AppContext.getInstance().getAccount() .getUserid().toString()); mHeaderView = View.inflate(this, R.layout.layout_buy_vip_header, null); listView.addHeaderView(mHeaderView); adapter = new UserLevelAdapter(this, null); listView.setAdapter(adapter); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { bean = new UserLevel(); bean.loadFromCursor((Cursor) adapter.getItem(position - 1)); adapter.setClickPosition(position - 1); adapter.notifyDataSetChanged(); tv_price.setText("¥" + bean.getPrice()); } }); getSupportLoaderManager().initLoader(0, null, this); } @OnCheckedChanged({ R.id.cb_client, R.id.cb_web }) public void payCheck(CompoundButton cb, boolean isCheck) { if (isCheck == true) { switch (cb.getId()) { case R.id.cb_client: cb_web.setChecked(false); isClient = true; break; case R.id.cb_web: cb_client.setChecked(false); isClient = false; break; } } } Handler handler = new Handler() { public void handleMessage(android.os.Message msg) { Result resultAli = new Result((String) msg.obj); String resultStatus = resultAli.getResultStatus(); if (TextUtils.equals(resultStatus, "9000")) { // 跳支付成功 Intent intent = new Intent(mActThis, PaySuccessActivity.class); intent.putExtra("price", bean.getPrice().doubleValue()); startActivity(intent); finish(); } else if (TextUtils.equals(resultStatus, "6001")) { showToast("支付取消"); } else { // 跳支付失败 startActivity(PayFailActivity.class); } }; }; @OnClick(R.id.tv_buy) public void buy(View v) { if (bean == null) { showToast("请选择会员"); return; } if (isClient) { ConsultationEngine.buyMember(bean.getMemberid().toString(), isClient, new GsonResponseHandler<OrderInfoModel>( OrderInfoModel.class) { @Override public void onFinish() { dismissProgressDialog(); } @Override public void onSuccess(OrderInfoModel object) { PayEngine.startAliPayClient(mActThis, object.getApipost(), object.getSign(), handler); } }); } else { ConsultationEngine.buyMember(bean.getMemberid().toString(), isClient, new GsonResponseHandler<OrderInfoModel>( OrderInfoModel.class) { @Override public void onFinish() { dismissProgressDialog(); } @Override public void onSuccess(int statusCode, String content) { Intent intent = new Intent(mActThis, WebBrowserActivity.class); intent.putExtra("html", content); startActivity(intent); } @Override public void onFailure(Throwable e, int statusCode, String content) { L.i(content); if (statusCode == 417) { Intent intent = new Intent(mActThis, WebBrowserActivity.class); intent.putExtra("html", content); startActivity(intent); } } }); } } @Override public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) { return new CursorLoader(this, ContentProvider.createUri( UserLevel.class, null), null, null, null, null); } @Override public void onLoadFinished(Loader<Cursor> arg0, Cursor cursor) { if (arg0 != null) { adapter.swapCursor(cursor); } } @Override public void onLoaderReset(Loader<Cursor> arg0) { } }