1. 概述
我们平时在项目开发中,一定都会有多个输入框需要填写一些验证信息,而我们一般对输入框下边的button按钮处理顶多就是去判断输入框是否为空,如果为空就给提示信息,如果不为空就让执行下一步操作,这篇文章将带给大家一个比较好的处理方式,就是,多个输入框都不为空的时候,就让下边的button颜色变深并且变为可点击,效果图如下:
未输入:
图片.png
输入一个:
图片.png
两个输入框都输入:
图片.png
2. 实现
针对于这种需求,实现起来还是蛮简单的,主要就是两步。
第一:给 "登录" 的button按钮设置,分别设置按下、没有按下、可用、不可用:
第二:自己定义一个监听器,可用监听多个输入框的监听器,让两个同时使用,然后在()方法中判断,如果两个输入框输入的长度同时大于0,就给 "登录"按钮(true),否则设置(false):
public class MainActivity extends AppCompatActivity {
private EditText et_usertel;
private EditText et_password;
private Button btn_login;
@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_usertel = (EditText) findViewById(R.id.et_usertel);
et_password = (EditText) findViewById(R.id.et_password);
btn_login = (Button) findViewById(R.id.btn_login);
// 监听多个输入框
TextChange textChange = new TextChange();
et_usertel.addTextChangedListener(textChange);
et_password.addTextChangedListener(textChange);
// if user changed, clear the password
et_usertel.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// et_password.setText(null);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
// EditText监听器

class TextChange implements TextWatcher {
@Override
public void afterTextChanged(Editable arg0) {
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
}
@Override
public void onTextChanged(CharSequence cs, int start, int before,
int count) {
boolean Sign2 = et_usertel.getText().length() > 0;
boolean Sign3 = et_password.getText().length() > 0;
if (Sign2 & Sign3) {
btn_login.setEnabled(true);
}
// 在layout文件中,对Button的text属性应预先设置默认值,否则刚打开程序的时候Button是无显示的
else {
btn_login.setEnabled(false);
}
}
}
}
代码已上传至github:
*请认真填写需求信息,我们会在24小时内与您取得联系。