前言
在安卓开发中经常会遇到一个需求,确定按钮需要等待用户全部输入完之后才能点击
OK!很简单我们只需要用户在每个EditText都去监听就可以判断了。但是这个工作量特别巨大。所以我们需要对该类问题进行封装。
思路
PlanA:使用代理模式写一个BindHelper。由代理统一处理。
PlanB:使用模版模式父类处理核心逻辑,子类被动调用方法。
对比两个方法,PlanA更加解耦,PlanB更加方便调用;这里书写PlanB方法,因为对我项目本身更加契合。因为太多地方调用了。所以写入基类是比较方便的方法。
直接上代码
/**
* 调用基类
*/
public abstract class BaseFragment extends Fragment {
//...
private View[] mViews;
private JwkillButton btSure;
/**
* 调用bindValid(绑定严重)其控件直接既可以主要调用,这里只举例TextView,CheckBox
* 和其继承类的使用 其他由需要请自行扩展
*/
public void bindValid(JwkillButton btSure, View... views) {
this.mViews = views;
this.btSure = btSure;
if (views == null && views.length == 0) {
return;
}
for (int i = 0; i < views.length; i++) {
if (views[i] instanceof TextView) {
((TextView) views[i]).addTextChangedListener(new JwkillTextWatch()