package cn.shangyu.gdxzExpert.activity; import android.content.Intent; import android.text.TextUtils; import android.view.View; import android.view.View.OnFocusChangeListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import com.gyf.immersionbar.ImmersionBar; import com.lidroid.xutils.exception.HttpException; import com.lidroid.xutils.http.RequestParams; import com.lidroid.xutils.http.ResponseInfo; import com.lidroid.xutils.http.callback.RequestCallBack; import com.lidroid.xutils.http.client.HttpRequest.HttpMethod; import java.io.InputStream; import java.util.HashMap; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import cn.shangyu.gdxzExpert.R; import cn.shangyu.gdxzExpert.base.BaseActivity; import cn.shangyu.gdxzExpert.bean.BaseBean; import cn.shangyu.gdxzExpert.http.HttpHelper; import cn.shangyu.gdxzExpert.utils.Constant; import cn.shangyu.gdxzExpert.utils.GsonTools; import cn.shangyu.gdxzExpert.utils.LogUtil; import cn.shangyu.gdxzExpert.utils.PlistHandler; import cn.shangyu.gdxzExpert.utils.SharePrefUtil; import cn.shangyu.gdxzExpert.utils.ToastUtil; import cn.shangyu.gdxzExpert.utils.UIUtils; import cn.shangyu.gdxzExpert.utils.Url; import cn.shangyu.gdxzExpert.widget.LoadingPage.ResultState; /** * AddBankCardActivity.java * * @author JX 记肖 * @date 2015-12-07 我的->常用银行卡->添加常用银行卡activity 功能说明:添加银行卡页面 */ public class AddBankCardActivity extends BaseActivity { private EditText bank_username; private EditText bank_number; private TextView bank_name; private Button btsu; private String banknumber; private String bankname; private String expertUuid; private String usercardname; private String result; private int resultIcon; private String nameforSelect; private static String addBankCardUrl = Url.getaddBankCard;// 提交链接 @Override public void setTitle() { // TODO Auto-generated method stub top_title.setText("添加银行卡"); } @Override public View onCreateSuccessedView() { // TODO Auto-generated method stub ImmersionBar.with(this).keyboardEnable(true).statusBarDarkFont(true).titleBar(mToolbar).init(); View view = UIUtils.inflate(R.layout.activity_add_bank_card); bank_username = (EditText) view.findViewById(R.id.ed_name);// 银行卡持有人姓名 bank_username.setOnFocusChangeListener(onFocusAutoClearHintListener); bank_number = (EditText) view.findViewById(R.id.ed_banknumber);// 银行卡号 bank_number.setOnFocusChangeListener(onFocusAutoClearHintListener); bank_name = (TextView) view.findViewById(R.id.ed_select_bankname);// 发卡银行 btsu = (Button) view.findViewById(R.id.bt_seclet_sure);// 确定添加按钮 // ImageView icon = (ImageView)view.findViewById(R.id.item_img); btsu.setOnClickListener(this);// 设置监听 bank_name.setOnClickListener(this); expertUuid = SharePrefUtil.getString(ct, Constant.uuid, "");// 取出专家的uuid return view; } @Override public ResultState onLoad() { // TODO Auto-generated method stub return ResultState.STATE_SUCCESSED; } /** * 设置输入框获得焦点hint提示消失 */ public static OnFocusChangeListener onFocusAutoClearHintListener = new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { EditText textView = (EditText) v; String hint; if (hasFocus) { hint = textView.getHint().toString(); textView.setTag(hint); textView.setHint(""); } else { hint = textView.getTag().toString(); textView.setHint(hint); } } }; // 填写银行卡数据并提交 private void btsu() { usercardname = bank_username.getText().toString().trim();// 获取输入的银行卡持有人姓名 banknumber = bank_number.getText().toString().trim();// 获取输入的银行卡号 bankname = bank_name.getText().toString().trim();// 获取输入的发卡银行 if (!UIUtils.isNetWorkConnected(this)) { Toast.makeText(this, "网络暂时不可用", Toast.LENGTH_SHORT).show(); return; } if (TextUtils.isEmpty(bankname)) { ToastUtil.showToast("请选择常用银行卡"); return; } if (TextUtils.isEmpty(banknumber)) { ToastUtil.showToast("请输入银行卡号码"); return; } if (TextUtils.isEmpty(usercardname)) { ToastUtil.showToast("请输入持卡人姓名"); return; } // if(banknumber.length() < 16 ){ // ToastUtil.showToast("请输入正确的银行卡号"); // return; // } try { InputStream in; in = getResources().getAssets().open("bankNameAndCard.plist");// 从资源读取银行卡卡号规则 SAXParserFactory factorys = SAXParserFactory.newInstance(); SAXParser saxparser = factorys.newSAXParser(); PlistHandler plistHandler = new PlistHandler(); saxparser.parse(in, plistHandler); HashMap hash = (HashMap) plistHandler .getMapResult(); for (int i = 0; i < hash.size(); i++) { String bn = banknumber; LogUtil.i("banknumber==========" + banknumber); nameforSelect = hash.get(bn.substring(0, 6)); } // if (!bankname.equals(nameforSelect)) if (!nameforSelect.contains(bankname)) { Toast.makeText(this, "填写的银行卡号与所选银行不匹配", Toast.LENGTH_SHORT) .show(); LogUtil.i("nameforSelect-=============" + nameforSelect); return; } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } showProgressDialog("提交中,请稍候..."); addBankCard(addBankCardUrl); } /** * 提交数据 addBankCard * * @param url * void */ private void addBankCard(String url) { RequestParams params = new RequestParams(); params.addBodyParameter("ownerUuid", expertUuid); // params.addBodyParameter("bankUuid", "");//银行UUID,备用 params.addBodyParameter("bankName", bankname); params.addBodyParameter("cardNum", banknumber); params.addBodyParameter("holderName", usercardname); HttpHelper.loadData(HttpMethod.POST, url, params, new RequestCallBack() { @Override public void onSuccess(ResponseInfo arg0) { // TODO Auto-generated method stub LogUtil.i("str=====" + arg0.result); processData(arg0.result); Intent intent = new Intent(); // 把返回数据存入Intent intent.putExtra("resultIcon", resultIcon); // 设置返回数据 setResult(RESULT_OK, intent); } @Override public void onFailure(HttpException arg0, String arg1) { // TODO Auto-generated method stub closeProgressDialog(); ToastUtil.showToast("添加失败"); } }); LogUtil.i("url====" + url + "ownerUuid====" + expertUuid + "bankName===" + bankname + "cardNum====" + banknumber + "holderName====" + usercardname); } /** * 解析并处理数据 * * @param result */ private void processData(String result) { closeProgressDialog(); BaseBean bean = GsonTools.fromGsonToBean(result, BaseBean.class); // 数据为空 if ("1".equals(bean.code)) { ToastUtil.showToast("添加银行卡成功"); this.setResult(RESULT_OK); finish(); } else { ToastUtil.showMessage(bean.message); } } @Override protected void onResume() { if (result != null && bank_name != null) { bank_name.setText(result); } super.onResume(); } @Override protected void processClick(View v) { // TODO Auto-generated method stub // AGP 8.0+ R.id 不再是 final 常量,不能用于 switch,改用 if-else int id = v.getId(); if (id == R.id.bt_seclet_sure) {// 提交数据 btsu(); } else if (id == R.id.ed_select_bankname) {// 选择银行卡 Intent intent = new Intent(ct, AddSecletBankCardActivity.class); startActivityForResult(intent, 1); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (data != null) { result = data.getExtras().getString("result"); resultIcon = data.getExtras().getInt("result_icon"); } } }