package com.partynetwork.iparty.iparty; import java.io.File; import java.util.ArrayList; import java.util.Date; import java.util.List; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.provider.MediaStore; import android.provider.MediaStore.Images.Media; import android.text.Editable; import android.text.TextWatcher; import android.text.format.DateFormat; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; import com.partynetwork.dataprovider.DataProvider.IJsonResultListener; import com.partynetwork.dataprovider.json.NetworkEntity; import com.partynetwork.dataprovider.json.struct.Account_checkOrderRequest; import com.partynetwork.dataprovider.json.struct.Account_getAccountInfoRequest; import com.partynetwork.dataprovider.json.struct.Account_getAccountInfoResponse; import com.partynetwork.dataprovider.json.struct.Account_getOrderNumberRequest; import com.partynetwork.dataprovider.json.struct.Account_getOrderNumberResponse; import com.partynetwork.dataprovider.json.struct.FileRequest; import com.partynetwork.dataprovider.json.struct.FileResponse; import com.partynetwork.dataprovider.json.struct.Iparty_joinIpartyRequest; import com.partynetwork.dataprovider.util.BitmapUtil; import com.partynetwork.dataprovider.util.StringUtil; import com.partynetwork.dataprovider.util.T; import com.partynetwork.dataprovider.util.Util; import com.partynetwork.iparty.R; import com.partynetwork.iparty.alipay.AlipayHelper; import com.partynetwork.iparty.alipay.Result; import com.partynetwork.iparty.app.AppContext; import com.partynetwork.iparty.app.common.BitmapManager; import com.partynetwork.iparty.info.AccountInfo; import com.partynetwork.iparty.info.IpartyComboInfo; import com.partynetwork.iparty.info.IpartyInfo; import com.partynetwork.iparty.info.CommonOrderInfo; import com.partynetwork.iparty.info.TimeInfo; import com.partynetwork.myview.mytoast.LoadingDialog; import com.partynetwork.myview.mytoast.OkPopup; import com.partynetwork.myview.wheelview.ArrayWheelAdapter; import com.partynetwork.myview.wheelview.WheelAdapter; import com.partynetwork.myview.wheelview.WheelPicker; import com.partynetwork.myview.wheelview.WheelView; import com.partynetwork.myview.wheelview.WheelPicker.WheelListener; import com.lidroid.xutils.ViewUtils; import com.lidroid.xutils.view.annotation.ViewInject; import com.lidroid.xutils.view.annotation.event.OnClick; @SuppressLint("HandlerLeak") public class IpartyPayActivity extends Activity implements IJsonResultListener, TextWatcher { public static final String INFO = "info"; public static final String TYPE = "type"; /** 选择相机拍照 */ private static final int SELECT_CAMER = 101; /** 支付页面 */ private static final int PAY_PAGE = 0; /** 套餐页面 */ private static final int COMBO_PAGE = 1; /** 需要支付 */ public static final int NEED_MONEY = 0; /** 不需要支付 */ public static final int FREE = 1; /** 支付 */ private static final int RQF_PAY = 1; /** 登陆 */ private static final int RQF_LOGIN = 2; /** * body体 */ @ViewInject(R.id.body) private LinearLayout body; /** * 向左 */ @ViewInject(R.id.menu_head_left_iv) private ImageView left; /** * 向右 */ @ViewInject(R.id.menu_head_right_iv) private ImageView right; /** * 封面图片 */ @ViewInject(R.id.title_iv) private ImageView bg; /** * 需要支付的金额 */ @ViewInject(R.id.money_tv) private TextView moneyTv; /** * 活动标题 */ @ViewInject(R.id.title_tv) private TextView title; /** * 支付方式的布局 */ @ViewInject(R.id.pay_way_ll) private LinearLayout payWayLl; /** * 套餐回报文本 */ @ViewInject(R.id.introduce_tv) private TextView introduceTv; /** * 编辑按钮 */ @ViewInject(R.id.editor_tv) private TextView editorTv; /** * 参加时间 */ @ViewInject(R.id.time_tv) private TextView time; /** * 确认提交 */ @ViewInject(R.id.pay_submit) private TextView submit; /** * 选择照片按钮 */ @ViewInject(R.id.choose_photo_rl) private RelativeLayout choosePhoto; /** * 选择照片的布局 */ @ViewInject(R.id.free_photo_ll) private LinearLayout photoLL; /** * 留言的布局 */ @ViewInject(R.id.free_message_ll) private LinearLayout messageLL; /** * 显示的照片 */ @ViewInject(R.id.photo) private ImageView photo; /** * 需要联系方式的布局 */ @ViewInject(R.id.need_photo_ll) private LinearLayout needPhotoLL; /** * 公开参加 */ @ViewInject(R.id.way_pub) private TextView wayPub; /** * 隐私参加 */ @ViewInject(R.id.way_stealth) private TextView wayStealth; /** * 参加姓名 */ @ViewInject(R.id.name_et) private EditText name; /** * 电话 */ @ViewInject(R.id.phone_et) private EditText phone; /** * 申请理由 */ @ViewInject(R.id.join_message_et) private EditText joinMessage; /** * 账户余额 */ @ViewInject(R.id.balance) private TextView balanceTv; /** * 账户余额付款 */ @ViewInject(R.id.pay_way_account_iv) private ImageView wayAccountIv; /** * 账户余额付款输入框 */ @ViewInject(R.id.pay_way_account_et) private EditText wayAccountEt; /** * 账户余额付款提示文本 */ @ViewInject(R.id.pay_way_account_tv) private TextView wayAccountTv; /** * 支付宝付款 */ @ViewInject(R.id.pay_way_alipay_iv) private ImageView wayAlipayIv; /** 支付方式列表,用于模拟单选操作 */ private List<ImageView> payWayList = new ArrayList<ImageView>(); /** 数据源 */ private IpartyInfo info; /** 支付方式 0: 付费 1:免费 */ private int payType; /** 支付页面对象 */ private View payView; /** 标题对象 */ private View titleView; /** 当前所处页面 */ private int pageNumber; /** 参与方式列表,用于模拟单选操作 */ private List<TextView> joinWayList = new ArrayList<TextView>(); /** 参加方式 */ private int joinWay; /** 套餐的选择列表,用于模拟单选操作 */ private List<ImageView> chooseList = new ArrayList<ImageView>(); /** 用于布局选中的单选效果 */ private List<RelativeLayout> selectedList = new ArrayList<RelativeLayout>(); /** 当前订单金额 */ private float money; /** 选择的套餐Id */ private int comboId; /** 参加套餐数量 */ private int joinNumber = 1; /** 照片的存放路径 */ private String filePath; /** 参加Party的对象 */ private Iparty_joinIpartyRequest request; /** 消息提示框 */ private OkPopup mOkPopup; /** 充值订单 */ private String orderNumber; /** 账户余额 */ private float balance; /** 支付方式 */ private int payWay; /** 滚轮弹窗 */ private WheelPicker wheelPicker; /** 本次生成的路径 */ private String imagePath; /** * 发布进度提示框 */ private LoadingDialog dialog; AppContext context; private BitmapManager bitmapManager; /** * * 覆盖方法 * * @see android.app.Activity#onCreate(android.os.Bundle) */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.iparty_pay); ViewUtils.inject(this); context = (AppContext) getApplication(); init(); } /** * 初始化数据、控件 */ private void init() { Intent intent = getIntent(); info = intent.getParcelableExtra(INFO); payType = intent.getIntExtra(TYPE, FREE); joinWayList.add(wayPub); joinWayList.add(wayStealth); payWayList.add(wayAccountIv); payWayList.add(wayAlipayIv); dialog = new LoadingDialog(this, "提交中"); mOkPopup = new OkPopup(this); bitmapManager=new BitmapManager(); sendRequest(); initView(); } /** * 初始化布局 */ private void initView() { // 显示背景图片 bitmapManager.loadBitmap(info.getEventFrontCoverUrl(), bg); title.setText(info.getEventTitle()); titleView = body.getChildAt(0); payView = body.getChildAt(1); // 免费申请状态 if (payType == FREE) { changBody(PAY_PAGE); } else { changBody(COMBO_PAGE); chooseCombo(0); } choosePayWay(1); } /** * 发送数据请求获取账户余额 */ private void sendRequest() { Account_getAccountInfoRequest request = new Account_getAccountInfoRequest(); request.setUserId(context.getLoginUid()); context.getmDataProvider().getJsonFromNetwork(request, this); } /** * 设置监听 * * @param view */ @OnClick({ R.id.menu_head_left, R.id.choose_photo_rl, R.id.way_pub, R.id.way_stealth, R.id.menu_head_right, R.id.editor_tv, R.id.pay_submit, R.id.time_tv, R.id.pay_way_account_iv, R.id.pay_way_alipay_iv }) public void onClick(View view) { switch (view.getId()) { case R.id.menu_head_left: // 返回 if (pageNumber == COMBO_PAGE) { // 套餐选择界面 finish(); } else { // 支付套餐界面 if (payType == FREE) { // 免费套餐 finish(); } else { // 收费套餐 changBody(COMBO_PAGE); if (info.getEventCombo() == null) { return; } for (int i = 0; i < info.getEventCombo().length; i++) { if (info.getEventCombo()[i].getComboId() == comboId) { chooseCombo(i); } } } } break; case R.id.choose_photo_rl: // 相机拍照 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); imagePath = BitmapUtil.getImagePath(); Uri uri = Uri.fromFile(new File(imagePath)); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); this.startActivityForResult(intent, SELECT_CAMER); break; case R.id.way_pub: // 公开参加 setJoinWay(0); break; case R.id.way_stealth: // 隐私参加 setJoinWay(1); break; case R.id.menu_head_right: // 下一步 if (pageNumber == COMBO_PAGE) { changBody(PAY_PAGE); } break; case R.id.editor_tv: // 编辑 changBody(COMBO_PAGE); for (int i = 0; i < info.getEventCombo().length; i++) { if (info.getEventCombo()[i].getComboId() == comboId) { chooseCombo(i); } } break; case R.id.pay_submit: // 确认提交 sendJoinIpartyRequest(); break; case R.id.time_tv: // 参加时间 List<String> timeList = new ArrayList<String>(); for (TimeInfo time : info.getEventTime()) { String startTime = time.getStartTime(); String endTime = time.getEndTime(); int[] days = time.getWeek(); timeList.addAll(StringUtil.getDates(startTime, endTime, days)); } wheelPicker = new WheelPicker(this,1,new ArrayWheelAdapter<String>(timeList.toArray(new String[timeList.size()])), timeWheelListener); wheelPicker.showAt(body); break; case R.id.pay_way_account_iv: choosePayWay(0); break; case R.id.pay_way_alipay_iv: choosePayWay(1); break; default: break; } } /** * 发送参加Party的请求 */ private void sendJoinIpartyRequest() { String time = this.time.getText().toString(); if (time == null || time.equals("")) { mOkPopup.setTitle("请选择参加时间"); mOkPopup.showAtLocation(this.time); return; } if (payType == FREE) { if (info.getEventNeedCondition() == 0) { if (filePath == null || filePath.equals("")) { mOkPopup.setTitle("请拍照申请!"); mOkPopup.showAtLocation(this.time); return; } } sendJoinPartyRequest(); } else { if (payWay == 0 && balance > money) { sendJoinPartyRequest(); } else if (payWay == 1) { // 充值 if (money == 0) { sendJoinPartyRequest(); } else { Account_getOrderNumberRequest request = new Account_getOrderNumberRequest(); request.setUserId(context.getLoginUid()); request.setType(1); request.setOrderMoney(money); context.getmDataProvider() .getJsonFromNetwork(request, this); } } else { mOkPopup.setTitle("账户余额不足,请充值后参加!"); mOkPopup.showAtLocation(this.time); } } } /** * 更换body体显示的内容 * * @param i */ private void changBody(int i) { pageNumber = i; removeBody(); switch (i) { case PAY_PAGE: showPay(); break; case COMBO_PAGE: showCombo(); break; default: break; } } /** * 显示支付页面 */ private void showPay() { left.setImageResource(R.drawable.menu_head_back); right.setVisibility(View.GONE); body.addView(payView); if (payType == FREE) { submit.setText("提交申请"); left.setImageResource(R.drawable.menu_head_close); editorTv.setVisibility(View.INVISIBLE); photoLL.setVisibility(View.VISIBLE); messageLL.setVisibility(View.VISIBLE); payWayLl.setVisibility(View.GONE); moneyTv.setText("免费"); comboId = info.getEventFreeCombo().getComboId(); introduceTv.setText(info.getEventFreeCombo().getIntroduce()); } else { submit.setText("确认支付"); editorTv.setVisibility(View.VISIBLE); photoLL.setVisibility(View.GONE); messageLL.setVisibility(View.GONE); payWayLl.setVisibility(View.VISIBLE); moneyTv.setText("¥" + money); for (int i = 0; i < info.getEventCombo().length; i++) { if (info.getEventCombo()[i].getComboId() == comboId) { introduceTv.setText(info.getEventCombo()[i].getIntroduce()); } } } if (info.getEventNeedCondition() == 0) { needPhotoLL.setVisibility(View.VISIBLE); } else { needPhotoLL.setVisibility(View.GONE); } } /** * 显示套餐 */ private void showCombo() { left.setImageResource(R.drawable.menu_head_close); right.setVisibility(View.VISIBLE); right.setImageResource(R.drawable.menu_head_next); if (info.getEventCombo() == null) { return; } for (int i = 0; i < info.getEventCombo().length; i++) { final IpartyComboInfo comboInfo = info.getEventCombo()[i]; View view = LayoutInflater.from(this).inflate( R.layout.iparty_join_combo, null); view.setTag(i); // 选择按钮 final ImageView chooseBtn = (ImageView) view .findViewById(R.id.choose_btn); chooseList.add(chooseBtn); // 选中显示的选择数量布局 final RelativeLayout seletedRL = (RelativeLayout) view .findViewById(R.id.select_rl); selectedList.add(seletedRL); // 支付的金额 final TextView pay = (TextView) view.findViewById(R.id.pay_money); // 减按钮 ImageView subBtn = (ImageView) view.findViewById(R.id.sub_btn); // 套餐的数量 final TextView num = (TextView) view.findViewById(R.id.num); // 加按钮 ImageView addBtn = (ImageView) view.findViewById(R.id.add_btn); // 套餐的金额 TextView comboMoney = (TextView) view .findViewById(R.id.combo_money); // 套餐的参加数量 TextView comboTip = (TextView) view.findViewById(R.id.combo_tip); // 套餐的回报 TextView introduce = (TextView) view .findViewById(R.id.introduce_tv); if (comboId != comboInfo.getComboId()) { pay.setText("¥" + StringUtil.formatFloat(comboInfo.getMoney())); } else { pay.setText("¥" + StringUtil.formatFloat(money)); joinNumber = (int) (money / comboInfo.getMoney()); num.setText(joinNumber + ""); } comboMoney.setText("预付 ¥" + StringUtil.formatFloat(comboInfo.getMoney()) + "+"); comboTip.setText(comboInfo.getAttendNum() + "/" + comboInfo.getMaxNum()); introduce.setText(comboInfo.getIntroduce()); // 减按钮 subBtn.setOnClickListener(new OnClickListener() { public void onClick(View v) { int number = Integer.parseInt(num.getText().toString()); if (number > 1) { number--; } joinNumber = number; num.setText(joinNumber + ""); money = comboInfo.getMoney() * number; pay.setText("¥" + StringUtil.formatFloat(money)); } }); // 加按钮 addBtn.setOnClickListener(new OnClickListener() { public void onClick(View v) { int number = Integer.parseInt(num.getText().toString()); if (number < comboInfo.getMaxNum() - comboInfo.getAttendNum()) { number++; } joinNumber = number; num.setText(joinNumber + ""); money = comboInfo.getMoney() * number; pay.setText("¥" + StringUtil.formatFloat(money)); } }); // 整个布局的监听 view.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { pay.setText("¥" + StringUtil.formatFloat(comboInfo.getMoney())); joinNumber = 1; num.setText(joinNumber + ""); chooseCombo(Integer.parseInt(arg0.getTag().toString())); // 更改布局时用默认金额代替 money = comboInfo.getMoney(); } }); body.addView(view); } } /** * 选择哪个套餐 * * @param position */ private void chooseCombo(int position) { for (int i = 0; i < chooseList.size(); i++) { IpartyComboInfo comboInfo = info.getEventCombo()[i]; if (position == i) { comboId = comboInfo.getComboId(); if (money == 0) { // 初始化时获取当前的套餐金额 money = comboInfo.getMoney(); } if (comboInfo.getAttendNum() < comboInfo.getMaxNum()) { selectedList.get(i).setVisibility(View.VISIBLE); chooseList.get(i).setImageResource( R.drawable.contacts_selected); } } else { selectedList.get(i).setVisibility(View.GONE); chooseList.get(i).setImageResource(R.drawable.contacts_normal); } } } /** * 选择支付方式 */ private void choosePayWay(int position) { payWay = position; if (position == 0) { wayAccountEt.setText(money + ""); wayAccountTv.setText("支付¥" + money + "元"); wayAccountEt.addTextChangedListener(this); if (money > balance) { mOkPopup.setTitle("账户余额不足,请使用支付宝付款参加!"); mOkPopup.showAtLocation(this.time); choosePayWay(1); } } else { wayAccountEt.setText(""); wayAccountTv.setText("支付¥" + 0 + "元"); wayAccountEt.setEnabled(false); } for (int i = 0; i < payWayList.size(); i++) { ImageView image = payWayList.get(i); if (position == i) { image.setImageResource(R.drawable.contacts_selected); } else { image.setImageResource(R.drawable.contacts_normal); } } } /** * 移除当前body体里面所有的控件 */ private void removeBody() { body.removeAllViews(); body.addView(titleView); chooseList.removeAll(chooseList); selectedList.removeAll(selectedList); } /** * 覆盖方法 * * @see android.app.Activity#onActivityResult(int, int, * android.content.Intent) */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // 选择照片的返回结果 // 选择照片的返回结果 if (data == null) { if (requestCode == SELECT_CAMER) { filePath = imagePath; // 根据地址,实例化对象 if (filePath != "") { choosePhoto.setVisibility(View.GONE); photo.setVisibility(View.VISIBLE); bitmapManager.loadBitmap(filePath, photo); } } return; } Object object = null; if (resultCode == Activity.RESULT_OK) { switch (requestCode) { case SELECT_CAMER: // 相机 if (data.getData() != null) { // 根据返回的URI获取对应的SQLite信息 Cursor cursor = this.getContentResolver().query( data.getData(), null, null, null, null); if (cursor.moveToFirst()) { filePath = cursor.getString(cursor .getColumnIndex(Media.DATA));// 获取绝对路径 } cursor.close(); } else {// 三星 小米(小米手机不会自动存储DCIM... 这点让哥又爱又恨...) object = (Bitmap) (data.getExtras() == null ? null : data .getExtras().get("data")); Bitmap bitmap = object == null ? null : (Bitmap) object; if (bitmap != null) { try { filePath = BitmapUtil.saveImg(bitmap, DateFormat .format("yyyy-MM-dd-hh-mm-ss", new Date()) .toString()); } catch (Exception e) { e.printStackTrace(); } } } filePath = !filePath.equals("") ? filePath : getRealFilePath(); break; default: break; } if (filePath != "") { choosePhoto.setVisibility(View.GONE); photo.setVisibility(View.VISIBLE); bitmapManager.loadBitmap(filePath, photo); } } else { Util.showMsg(this, "请重新选择图片"); } } /** * 获取系统默认存储真实文件路径 两个路径 一个是最后一张所拍图片路径 * (由于设置了存储路径所以DCIM中会存储两张一模一样的图片,所以在此获取两张图片路径以便于缩放处理后全部删除) * * @param filePath * @return */ protected String getRealFilePath() { String filePath = ""; // MediaStore.Images.Media.EXTERNAL_CONTENT_URI // content://media/external/images/media Cursor cursor = this.getContentResolver().query( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null, null, Media.DATE_MODIFIED + " desc"); if (cursor.moveToNext()) { /** * _data:文件的绝对路径 Media.DATA='_data' */ filePath = cursor.getString(cursor.getColumnIndex(Media.DATA)); } return filePath; } /** * 设置参加形式 * * @param position * 0:公开参加;1:隐私参加 */ private void setJoinWay(int position) { joinWay = position; Drawable left = null; for (int i = 0; i < joinWayList.size(); i++) { if (position == i) { left = this.getResources().getDrawable( R.drawable.contacts_selected); left.setBounds(0, 0, left.getMinimumWidth(), left.getMinimumHeight()); joinWayList.get(i).setCompoundDrawables(left, null, null, null); } else { left = this.getResources().getDrawable( R.drawable.contacts_normal); left.setBounds(0, 0, left.getMinimumWidth(), left.getMinimumHeight()); joinWayList.get(i).setCompoundDrawables(left, null, null, null); } } } /** * 时间滚轮的监听 */ private WheelListener timeWheelListener = new WheelListener() { @Override public WheelAdapter onChange(WheelView wheel, int oldValue, int newValue) { return null; } @Override public void confirm(String str) { StringUtil.setText(time, str); } @Override public void cancel() { } }; /** * 发送参加Party请求 */ private void sendJoinPartyRequest() { request = new Iparty_joinIpartyRequest(); request.setIpartyId(this.info.getIpartyId()); request.setJoinWay(joinWay); request.setMoney(money); request.setUserId(context.getLoginUid()); request.setComboId(comboId); request.setJoinNumber(joinNumber); request.setJoinName(name.getText().toString()); request.setJoinPhone(phone.getText().toString()); request.setJoinMessage(joinMessage.getText().toString()); request.setJoinTime(StringUtil.getTime(this.time.getText().toString())); if (filePath == null || filePath.equals("")) { context.getmDataProvider().getJsonFromNetwork(request, this); } else { FileRequest fileRequest = new FileRequest(); fileRequest.setFilePath(new String[] { filePath }); context.getmDataProvider().getJsonFromNetwork(fileRequest, this); } } public void onNetworkRequest() { if (dialog != null && !dialog.isShowing()) { dialog.show(); } } public void onResultSuccess(NetworkEntity entity) { if (dialog != null && dialog.isShowing()) { dialog.dismiss(); } if (entity.getRequest().getAction() .equals(new FileRequest().getAction())) { FileResponse fileResponse = (FileResponse) entity.getResponse(); String name = fileResponse.getDetails()[0]; request.setJoinPhoto(name); context.getmDataProvider().getJsonFromNetwork(request, this); } if (entity.getRequest().getAction() .equals(new Iparty_joinIpartyRequest().getAction())) { if (payType == FREE) { T.showTips(this, R.drawable.tips_smile, "你已成功申请该Party,请耐心等待发起人同意!"); } else { T.showTips(this, R.drawable.tips_smile, "恭喜你已成功参加该Party!请到助手中查看活动详情。"); } this.finish(); } // 获取充值订单号 if (entity.getRequest().getAction() .equals(new Account_getOrderNumberRequest().getAction())) { Account_getOrderNumberResponse response = (Account_getOrderNumberResponse) entity .getResponse(); CommonOrderInfo info = response.getDetails(); if (info != null) { orderNumber = info.getOrderNumber(); if (orderNumber == null || orderNumber.equals("")) { return; } info.setOrderName("充值"); info.setOrderContent("Party账户充值"); AlipayHelper.doAlipay(this, mHandler, info); } } // 获取订单状态检验结果 if (entity.getRequest().getAction() .equals(new Account_checkOrderRequest().getAction())) { sendJoinPartyRequest(); } // 获取账户余额 if (entity.getRequest().getAction() .equals(new Account_getAccountInfoRequest().getAction())) { Account_getAccountInfoResponse response = (Account_getAccountInfoResponse) entity .getResponse(); AccountInfo info = response.getDetails(); // 余额 balance = (float) (Math.round(Double.parseDouble(info .getAccountBalance()) * 100)) / 100; balanceTv.setText("可支付余额:¥" + balance + "元"); } } public void onResultFail(String result) { if (dialog != null && dialog.isShowing()) { dialog.dismiss(); } T.showTips(this, R.drawable.tips_error, result); } @SuppressLint("HandlerLeak") Handler mHandler = new Handler() { public void handleMessage(android.os.Message msg) { Result result = new Result((String) msg.obj); switch (msg.what) { case RQF_PAY: if (result.getResult() != null && result.getResult().equals("9000")) { // 向服务器查询订单状态 Account_checkOrderRequest request = new Account_checkOrderRequest(); request.setUserId(context.getLoginUid()); request.setOrderNumber(orderNumber); context.getmDataProvider().getJsonFromNetwork(request, IpartyPayActivity.this); } break; case RQF_LOGIN: break; default: break; } }; }; @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if (s.toString().equals("")) { wayAccountTv.setText("支付¥" + 0 + "元"); } else { if (balance > Float.parseFloat(s.toString())) { wayAccountTv.setText("支付¥" + s.toString() + "元"); } else { wayAccountTv.setText("金额错误"); } } } @Override public void afterTextChanged(Editable s) { } }