public class CheckEditForButton implements TextWatcher {
// 声明一个监听器
private EditTextChangeListener mListener;
private TextView mTextView;
private EditText mEditTexts;
private EditText mEditTexts2;
// 监听器的set方法
public void setListener(EditTextChangeListener listener) {
mListener = listener;
}
public CheckEditForButton(TextView textView) {
mTextView = textView;
}
public void addEditText(EditText editTexts,EditText editTexts2) {
mEditTexts = editTexts;
mEditTexts2 = editTexts2;
editTexts.addTextChangedListener(this);
editTexts2.addTextChangedListener(this);
}
public void removeEditText(EditText editTexts,EditText editTexts2) {
mEditTexts = editTexts;
mEditTexts2 = editTexts2;
editTexts.removeTextChangedListener(this);
editTexts2.removeTextChangedListener(this);
}
private boolean allEditIsEmpty() {
if (mEditTexts.getText().toString().length()>12&&!TextUtils.isEmpty(mEditTexts2.getText().toString())) {
// 如果是空的,那么直接返回true
return false;
} else {
return true;
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// 当输入框内容改变之前,会调用此方法
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// 当输入框内容改变之时,会调用此方法
}
@Override
public void afterTextChanged(Editable s) {
// 当输入框内容改变之后,会调用此方法
if (allEditIsEmpty()) {
// 如果所有的EditText中都没有有数据
// 那么就将接口中的方法设置为false
mListener.allHasContent(false);
} else {
// 如果所有的EditText中都有数据
// 那么就将接口中的方法设置为true
mListener.allHasContent(true);
}
}
public interface EditTextChangeListener {
// 是否所有的EditText中都有内容
void allHasContent(boolean isHasContent);
}
}
使用方法
checkEditForButton=new CheckEditForButton(loginBtn);
checkEditForButton.addEditText(etPhone,etPassWord);
checkEditForButton.setListener(new CheckEditForButton.EditTextChangeListener() {
@Override
public void allHasContent(boolean isHasContent) {
if(isHasContent){
VerCodeUtil.setClickTrue(loginBtn);
}else {
VerCodeUtil.setClickFalse(loginBtn);
}
}
});