当特定的EditText框为空时,如何使"提交"按钮变灰?

Edd*_*e R 4 android android-edittext

关于我正在创建的Android应用:

我有三个EditText框需要填充数字/字符串.我有一个提交按钮,将启动一系列计算.

如果任何框为空并按下提交,则应用程序崩溃.我试过用try-catch语句做这个,​​但它没有用.我只想禁用按钮,直到三个盒子有数字.我知道有一种方法可以setEnabled(false)考虑吗?或者,还有更好的方法?按钮会灰显吗?或者这是setEnabled的无关功能?

Mic*_*ael 5

试试这个解决方案

EditText edit1;
EditText edit2;
EditText edit3;
View button;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // Your initialization code...

    TextWatcher watcher = new LocalTextWatcher();
    edit1.addTextChangedListener(watcher);
    edit2.addTextChangedListener(watcher);
    edit3.addTextChangedListener(watcher);
    updateButtonState();
}

void updateButtonState() {
    boolean enabled = checkEditText(edit1)
        && checkEditText(edit2)
        && checkEditText(edit3);
    button.setEnabled(enabled);
}

private boolean checkEditText(EditText edit) {
    return Integer.getInteger(edit.getText().toString()) != null;
}

private class LocalTextWatcher implements TextWatcher {
    public void afterTextChanged(Editable s) {
        updateButtonState();
    }

    void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    void onTextChanged(CharSequence s, int start, int before, int count) {
    }
}
Run Code Online (Sandbox Code Playgroud)