Почему я могу ввести отключенный EditText? - PullRequest
10 голосов
/ 26 мая 2009

Если я отключаю виджет EditText, используя

editText.setEnabled(false);

Я все еще могу ввести его, используя метод ввода на экране (как в эмуляторе, так и в G1). Это предназначено? Как я могу обойти эту проблему?

Ответы [ 8 ]

9 голосов
/ 27 мая 2009

Я заметил, что вы не можете активировать экранную клавиатуру, нажав на отключенный EditText, а также клавиша DEL не работает, так что мне это кажется ошибкой. Я зарегистрировал это как выпуск 2771 в системе отслеживания проблем Android.

6 голосов
/ 17 февраля 2012
edittext.setKeyListener(null);

Это вам поможет

2 голосов
/ 01 февраля 2012

Используйте это, у меня это сработало

setFocusableInTouchMode(boolean);

setFocusable(boolean);
1 голос
/ 02 августа 2011

Возможно, вы могли бы альтернативно динамически заменить TextView и обратно. Но вам, вероятно, потребуется настроить шрифт в соответствии с EditText.

1 голос
/ 10 июня 2011
etComment.setEnabled(flag);
etComment.setFocusable(flag);
etComment.setFocusableInTouchMode(flag);
if (flag) {
    etComment.requestFocus();
}
etComment.setFilters(new InputFilter[] { new InputFilter() {
    @Override
    public CharSequence filter(
        CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
            if (!flag) {
                return source.length() < 1 ? dest.subSequence(dstart, dend) : "";
            }
            return null;
        }
    }
});

для всех Вы можете получить это!

1 голос
/ 26 февраля 2011

Я исправил эту проблему, но патч был включен только в Honeycomb. Вот почему я создал небольшой проект, который будет содержать мои исправления в версиях, начиная с 2.1. Он содержит исправление для ошибки 2771: http://code.google.com/p/android-fixes/
Вы можете проверить «библиотеку» из SVN и включить ее в свой проект. Тогда вместо android.widget.EditText импортируйте edu.ubbdroid.android.widget.EditText (который расширяет исходный EditText) и проблема должна быть устранена:

0 голосов
/ 22 декабря 2010

Для более актуального ответа проверьте эту ветку:

Как скопировать Android редактируемые ложные

0 голосов
/ 26 мая 2009

Я думаю, что вы должны иметь возможность редактировать Text.setOnClickListener () с вашей собственной функцией и вызывать super.onClickListener (), если вы хотите, чтобы ваш текст редактировался.

Edit:
Следующая ссылка имеет несколько ответов, которые звучат более правильно:
Можем ли мы иметь не редактируемый текст в тексте редактирования

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...