Как сделать EditText uneditable/disabled
У меня есть EditText, в котором пользователь не может предоставить вход. Поэтому я попытался отключить его,
edittext.setEnabled(false);
edittext.setClickable(false);
Но все же, когда я нажимаю кнопку "next" в softKeyboard из какого-то другого EditText, он направляет меня в тот, который не должен редактироваться, и я могу вставлять в него значения. Как этого избежать?
Ответы
Ответ 1
Это прекрасно работает; просто настройте свойство вашего edittext на "false", и вы закончите.
<EditText
android:id="@+id/EditTextInput"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:gravity="right"
android:cursorVisible="true">
</EditText>
Ответ 2
не перепутайте себя. просто использовать для работы ниже одного
Сначала сохраните прослушиватель клавиш EditText:
KeyListener mKeyListener = yourTextView.getKeyListener();
yourTextView.setKeyListener(null);
Затем, если вы хотите снова включить редактирование, назначьте сохраненный прослушиватель назад:
yourTextView.setKeyListener(mKeyListener);
источник
Ответ 3
yourEditText.setKeyListener(null);
Не нужно удалять фокус и устанавливать значение clickable false.
Просто удалите прослушиватель клавиш, и все готово.
Также протестирован с Android 6.0
Ответ 4
Ok. Я сделал что-то подобное и получил результат.
edittext.setEnabled(false);
edittext.setGravity(Gravity.CENTER);
edittext.setClickable(false);
edittext.setFocusable(false);
edittext.setFilters(new InputFilter[] { new textChange() });
edittext.setInputType(0);
class textChange implements InputFilter {
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
return dest.subSequence(dstart, dend);
}
}
Ответ 5
Попробуйте добавить
edittext.setFocusable(false);
edittest.setFocusableInTouchMode(false);
Ответ 6
android:focusable="false"
android:longClickable="false"
Добавление этих двух полей в ваш EditText отключит фокус, а также отключит копирование данных в поле EditText.
Ответ 7
Взгляните на this
editText.setEnabled(false);
и editText.setFocusable(false);
.
Ответ 8
В вашем коде TextText. Вставьте под строку.
android:focusable="false"
Ответ 9
android:focusable="false"
работал у меня.
Ответ 10
Используйте атрибут imeOptions, чтобы изменить эту кнопку в softKeyboard на
Android: imeOptions = "actionDone"
добавьте его в EditText только до того, который вы хотите отключить.
Ответ 11
Это может быть кто-то полезный.
Я нашел одну реализацию:
@Override
public boolean onTouch(View v, MotionEvent event) {
//for edit text
return locked;
}
где locked
заблокировано.
конечно, я должен использовать editText.setOnTouchListener(<listener>);