1

EditTextとSpinnerがあります。最初はスピナーが無効になっていますが、EditTextにテキストがあるときはいつでも有効にします。たとえば、EditTextフィールドに何かを入力すると、スピナーが有効になり、スピナーがなくなるまでテキストを消去します。無効に戻る、何か助けはありますか?

4

2 に答える 2

1

TextWatcherフィールドでaを使用し、に対してEditText内容を確認します。それらが等しい場合は無効にし、そうでない場合は有効にします。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 に答える