在对话框中有两个 editText 并根据这些将肯定按钮设置为启用

Having two editText in a dialog box and set the positive button as enable based on these

我的对话框视图中有三个 editText。起初,我禁用肯定按钮,一切正常("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);
    }
}