我的对话框视图中有三个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);
    }
}

08-17 16:11