Как отключить ввод в EditText, когда его видимость установлена ​​в Gone - PullRequest
0 голосов
/ 22 декабря 2011

Я пишу приложение на Android, и у меня есть эти связки кнопок;при нажатии на них появляется панель ввода (EditText), если она еще не видна, в противном случае она исчезает.Проблема в том, что пользователь все еще может печатать в EditText даже после его исчезновения.Я приложил две картинки, чтобы показать, что я имею в виду.

User can type when Edit Text is visible User can type when EditText is gone (I can still type)

Я пытался .setEnabled(false) - не работал.

Я пытался .setFocusable(false) - не работал.

Я попробовал оба вместе - не сработало.

Ответы [ 4 ]

1 голос
/ 22 декабря 2011

вы можете использовать TextWatcher вместе с флагом http://developer.android.com/reference/android/text/TextWatcher.html

подготовить логику так, чтобы когда-то исчезла видимость, тогда в public void onTextChanged(CharSequence s, int start, int before, int count) поместите тот же текст, что и раньше

см. Также Android TextWatcher.afterTextChanged против TextWatcher.onTextChanged

1 голос
/ 22 декабря 2011

Я думаю, вам нужно закрыть программную клавиатуру Android.Эта ссылка поможет вам решить эту проблему: Закрыть / скрыть программную клавиатуру Android

1 голос
/ 22 декабря 2011

Вы можете попробовать скрыть программную клавиатуру перед настройкой видимости.

InputMethodManager imm = (InputMethodManager) YourActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editView.getWindowToken(), 0);
0 голосов
/ 22 декабря 2011

В этих ответах на эти вопросы говорится, что вы можете использовать InputFilter

editText.setFilters(new InputFilter[] {
    new InputFilter() {
        public CharSequence filter(CharSequence src, int start,
            int end, Spanned dst, int dstart, int dend) {
            return src.length() < 1 ? dst.subSequence(dstart, dend) : "";
        }
    }
});

Почему я могу ввести отключенный EditText?

Можем ли мы иметь не редактируемый текст в тексте редактирования

...