Android 多個Edittext不為空,Button才可點選的方法
阿新 • • 發佈:2019-01-29
本人Android新手,在開發過程中遇到需要對多個Edittext進行判斷,只有Edittext全部不為空時,Button才可以點選。而百度無果後,自己用了比較原始的方法解決了這一問題。不知有沒有其他的實現方法。
在Android 填寫資訊並提交時,一般都不能讓使用者提交空白的資訊。因此需要對Edittext進行輸入監聽。通過判斷Edittext是否為空,來設定Button是否可點選。對只有一個Edittext時,實現起來較為簡單。但是在一般開發中,Edittext通常不是一個。
直接上程式碼吧。。
int flag=0;
public class mywatcher implements TextWatcher {
private EditText EditId=null;
private String str;
public mywatcher(EditText id){
EditId=id;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
if(EditId==editText1){
if (TextUtils.isEmpty(editText1.getText()))
insert.setEnabled(false);
else
flag = flag - 1;//1
}
if(EditId==editText2){
if(TextUtils.isEmpty(editText2.getText()))
insert.setEnabled(false );
else
flag = flag - 1;//2
}
if(EditId==editText3){
if(TextUtils.isEmpty(editText3.getText()))
insert.setEnabled(false);
else
flag = flag - 1;//3
}
if(EditId==editText4){
if(TextUtils.isEmpty(editText4.getText()))
insert.setEnabled(false);
else
flag=flag-1;
}
if(EditId==editText5){
if(TextUtils.isEmpty(editText5.getText()))
insert.setEnabled(false);
else
flag=flag-1;
}
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(EditId==editText1){
if(TextUtils.isEmpty(editText1.getText()))
insert.setEnabled(false);
else
flag = flag + 1;//1
}
if(EditId==editText2){
if(TextUtils.isEmpty(editText2.getText()))
insert.setEnabled(false);
else
flag = flag + 1;//2
}
if(EditId==editText3){
if(TextUtils.isEmpty(editText3.getText()))
insert.setEnabled(false);
else
flag = flag + 1;//3
}
if(EditId==editText4){
if(TextUtils.isEmpty(editText4.getText()))
insert.setEnabled(false);
else
flag=flag+1;
}
if(EditId==editText5){
if(TextUtils.isEmpty(editText5.getText()))
insert.setEnabled(false);
else
flag=flag+1;
}
//Log.i("flag", String.valueOf(flag));
if(flag==5) {
insert.setEnabled(true);
}
};
}
簡單來說,就是Edittext為空時,flag-1;當Edittext不為空時,flag+1。當所有的Edittext不為空時,flag等於Edittext的個數。由此來實現這一功能。