expert-app/app/src/main/java/cn/shangyu/gdxzExpert/activity/AddBankCardActivity.java
2025-11-18 15:12:24 +08:00

258 lines
8.2 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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<String, String> hash = (HashMap<String, String>) 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<String>() {
@Override
public void onSuccess(ResponseInfo<String> 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");
}
}
}