本人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的个数。由此来实现这一功能。