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小時內與您取得聯系。