我的对话框视图中有三个editTexts。首先,我禁用肯定按钮,并且一切正常(“ ok”表示在显示对话框时,肯定按钮已禁用,这就是我想要的)。现在,如果我的三个editText的长度大于零,我想启用它。我只为一个editText找到了一些答案。
谁能帮我?
最佳答案
您可以对每个EditText使用TextWatcher来监视字符串长度。
boolean et1HasText, et2HasText, et3HasText; // Global variables
et1.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(s.length > 0){
et1HasText = true;
}else{
et1HasText = false;
}
validateButton();
}
// Other callbacks
...
...
});
et2.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(s.length > 0){
et2HasText = true;
}else{
et2HasText = false;
}
validateButton();
}
//Other callbacks
...
...
});
et3.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(s.length > 0){
et3HasText = true;
}else{
et3HasText = false;
}
validateButton();
}
//Other callbacks
...
...
});
private void validateButton(){
if(et1HasText && et2HasText && et3HasText){
//Enable the button only when all the 3 edit texts have text
button.setEnabled(true);
}else{
//Disable otherwise (user clicks backspace and clears the edit text etc)
button.setEnabled(false);
}
}