1

我有一个 EditText 和一个 Spinner。最初 Spinner 被禁用,我希望它在 EditText 中有一些文本时启用,例如,如果我在 EditText 字段中输入一些内容,它应该被启用,并且当我擦除文本直到没有其他任何东西时 Spinner 应该去回到禁用,任何帮助?

4

2 回答 2

1

TextWatcher在字段上使用 aEditText并检查CharSequence反对的内容""。如果它们相等,则禁用Spinner,否则启用它。

private Spinner mySpinner; // Of course, this has to be defined somewhere

// ...

final EditText editBox = (EditText) findViewById(<your EditText field>);
editBox.addTextChangedListener(new TextWatcher() {
    public void afterTextChanged(Editable s) {
        // Nothing
    }

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

    public void onTextChanged(CharSequence s, int start, int before, int count) {
        if (s.toString().equals("")) {
            mySpinner.setEnabled(false);
        } else {
            mySpinner.setEnabled(true);
        }
    }
});

您可能还想mySpinner.isEnabled()在调用setEnabled(...)它之前进行检查。

于 2012-08-01T21:25:08.480 回答
0

对 EditText 小部件使用 addTextChangedListener(TextWatcher watcher) 并检查小部件 getText() 是否不是空字符串,然后启用微调器。

于 2012-08-01T21:24:44.567 回答