android MVP
来源:互联网 发布:dbc数据库保存 编辑:程序博客网 时间:2024/05/28 03:02
1、public interface BaseView<T> { void showToast(String msg); /** * 网络错误 */ void networkError();}
<pre name="code" class="java">2、public class BankInfoContract { public interface View extends BaseView<Presenter> { void getBinkInfoSuccess(List<BankInfo> bankInfos); } public interface Presenter extends BasePresenter { /** * 银行列表 * * @param type:开户类型 type=qiluce,tjpme */ void getBinkInfo(String type); }}
<pre name="code" class="java">3、public class BankInfoPresenter implements BankInfoContract.Presenter { private BankInfoContract.View view; public BankInfoPresenter(BankInfoContract.View view) { this.view = view; } @Override public void getBinkInfo(String type) { ApiKaiHu.getBankInfo(type, new IHttpCallBack() { @Override public void onSuccess(BaseInfo base) { if (null == view) { return; } List<BankInfo> bankInfos = JsonUtils.getArray(base.value, BankInfo.class); view.getBinkInfoSuccess(bankInfos); } @Override public void onFailure(int code, String msg) { if (null == view) { return; } if (404 == code) { view.networkError(); } else { view.showToast(msg); } } }); } @Override public void start() { } @Override public void onDestroy() { view = null; }}
4、<span style="font-family: Arial, Helvetica, sans-serif;">@SuppressLint("ValidFragment")</span><pre name="code" class="java">public class BankInfoFragment extends BaseFragment implements BankInfoContract.View, View.OnClickListener { private SwitchFragmentInterface mCallBack; private BankInfoPresenter mPresenter; private TextView tv_bank_name; private RelativeLayout rl_select_bank; private EditText et_bank_num; private ImageView iv_see_bank_name; private TextView tv_bank_info_next; private List<String> bankNames; private String type; private List<BankInfo> bankInfos; private boolean showOrHidePasswd = false; public BankInfoFragment(SwitchFragmentInterface CallBack) { this.mCallBack = CallBack; } @Override public String getTitle() { return "银行信息"; } @Override protected int getContentView() { return R.layout.fragment_backinfo; } @Override protected void initView() { tv_bank_name = (TextView) findViewById(R.id.tv_bank_name); rl_select_bank = (RelativeLayout) findViewById(R.id.rl_select_bank); et_bank_num = (EditText) findViewById(R.id.et_bank_num); iv_see_bank_name = (ImageView) findViewById(R.id.iv_see_bank_num); tv_bank_info_next = (TextView) findViewById(R.id.tv_bank_info_next); } @Override protected void initData() { bankNames = new ArrayList<>(); type = getArguments().getString("type"); mPresenter = new BankInfoPresenter(this); mPresenter.getBinkInfo(type); } @Override protected void initListener() { tv_bank_info_next.setOnClickListener(this); rl_select_bank.setOnClickListener(this); iv_see_bank_name.setOnClickListener(this); et_bank_num.addTextChangedListener(mBankWatcher); } @Override public void getBinkInfoSuccess(List<BankInfo> bankInfos) { this.bankInfos = bankInfos; for (int i = 0; i < bankInfos.size(); i++) { bankNames.add(bankInfos.get(i).name); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.tv_bank_info_next: addBankInfoToParams(); mCallBack.onNext(this); break; case R.id.rl_select_bank: new SelecBankDialog(getContext(), bankNames, new SelecBankDialog.OnCompleteListener() { @Override public void onComplete(String bankName) { tv_bank_name.setText(bankName); } }).show(); break; case R.id.iv_see_bank_num: showOrHidePasswd(); break; } } private void showOrHidePasswd() { if (showOrHidePasswd) { //设置EditText文本为可见的 et_bank_num.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); } else { //设置EditText文本为隐藏的 et_bank_num.setTransformationMethod(PasswordTransformationMethod.getInstance()); } showOrHidePasswd = !showOrHidePasswd; et_bank_num.postInvalidate(); //切换后将EditText光标置于末尾 CharSequence charSequence = et_bank_num.getText(); if (charSequence instanceof Spannable) { Spannable spanText = (Spannable) charSequence; Selection.setSelection(spanText, charSequence.length()); } } private void addBankInfoToParams() { String bankName = tv_bank_name.getText().toString(); String bankNum = et_bank_num.getText().toString(); for (int i = 0; i < bankInfos.size(); i++) { if (bankName.equals(bankInfos.get(i).name)) { ((KaiHuActivity) getActivity()).getParamsUtils().addBodyParameter("bankId", bankInfos.get(i).value);// if ("qiluce".equals(type)) {// ((KaiHuActivity) getActivity()).getParamsUtils().addBodyParameter("account", bankNum);// } else { ((KaiHuActivity) getActivity()).getParamsUtils().addBodyParameter("bankAcc", bankNum);// } break; } } } /** * 对手机号输入内容监听 并改变获取验证码按钮状态 */ private TextWatcher mBankWatcher = new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { //校验银行账号长度为>=16&&银行名字不为空时获取验证码按钮可点击 if (et_bank_num.length() >= 16 && tv_bank_name.length() != 0) { tv_bank_info_next.setClickable(true); tv_bank_info_next.setBackgroundResource(R.drawable.bt_bg_shape_clickable); } else { tv_bank_info_next.setClickable(false); tv_bank_info_next.setBackgroundResource(R.drawable.bt_bg_shape_unclickable); } } @Override public void afterTextChanged(Editable s) { } }; @Override public void showToast(String msg) { ToastUtils.show(msg); } @Override public void networkError() { ToastUtils.show("网络错误"); }}
0 0
- android MVP
- android mvp
- android MVP
- Android MVP
- Android MVP
- android MVP
- Android MVP
- Android MVP
- Android mvp
- android MVP
- android mvp
- Android MVP
- Android MVP
- Android MVP
- Android MVP
- Android MVP
- Android MVP
- Android mvp
- R语言基本绘图参数
- Javascript—有效变量名称
- python爬虫之豆瓣电影评分
- error: expected '=', ',', ';', 'asm' or '__attribute__' before 'WINAPI' 编译问题
- [leetcode]122. Best Time to Buy and Sell Stock II
- android MVP
- android developer tiny share-20160825
- 8.29 基础训练
- pixhawk开发环境
- cookie session
- Java设计模式之简介(共23种)
- 质数
- C# Random.Next
- java中finally语句是否一定会被执行