Как отключить EditText в Android - PullRequest
71 голосов
/ 04 мая 2011

Как отключить ввод текста в поле EditText в Android?

Ответы [ 15 ]

59 голосов
/ 06 февраля 2012

Вы можете использовать EditText.setFocusable(false) для отключения редактирования
EditText.setFocusableInTouchMode(true) для включения редактирования;

38 голосов
/ 04 мая 2011

Я думаю, что это ошибка в Android .. Это можно исправить, добавив этот патч:)
Проверьте эти ссылки вопрос 1 а также вопрос 2

Надеюсь, это будет полезно.

35 голосов
/ 04 мая 2011

В коде:

editText.setEnabled(false);

Или в XML:

android:editable="false"
11 голосов
/ 04 мая 2011

Предполагая, editText это вы EditText объект:

editText.setEnabled(false);
9 голосов
/ 03 апреля 2015

Вы можете попробовать следующий метод:

 private void disableEditText(EditText editText) {
    editText.setFocusable(false);
    editText.setEnabled(false);
    editText.setCursorVisible(false);
    editText.setKeyListener(null);
    editText.setBackgroundColor(Color.TRANSPARENT); 
 }

Включено EditText:

Enabled EditText

Отключено EditText:

Disabled EditText

Это работает для меня и надеюсь, что это поможет вам.

8 голосов
/ 25 ноября 2014

Просто установите фокусируемое свойство вашего текста редактирования на «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>

Ниже параметры не работают

В коде:

editText.setEnabled(false); Или в XML: android:editable="false"

5 голосов
/ 10 апреля 2017
Edittext edittext = (EditText)findViewById(R.id.edit);
edittext.setEnabled(false);
2 голосов
/ 02 апреля 2012
edittext.setFocusable(false); 
edittext.setEnabled(false);

InputMethodManager imm = (InputMethodManager)
  getSystemService(Context.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);
  //removes on screen keyboard
2 голосов
/ 04 мая 2011

Приведенный ниже код отключает EditText в Android

editText.setEnabled(false);
1 голос
/ 10 октября 2018

Включить:

private void enableEditText() {
    mEditText.setFocusableInTouchMode(true);
    mEditText.setFocusable(true);
    mEditText.setEnabled(true);
}

Отключение:

private void disableEditText() {
    mEditText.setEnabled(false);
    mEditText.setFocusable(false);
    mEditText.setFocusableInTouchMode(false);
}
...