EditText недоступно для редактирования

Я пытаюсь сделать EditText недоступным для редактирования с помощью этого кода:

<EditText android:id="@+id/outputResult"
          android:inputType="text"
          android:editable="false"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:text="@string/result" />

Я должен был добавить следующую строку, чтобы сделать ее недоступной для редактирования

android:focusable="false" 

Я что-то не так делаю?

большое спасибо

Ответ 1

android:editable="false" должен работать, но он устарел, вместо этого вы должны использовать android:inputType="none".

В качестве альтернативы, если вы хотите сделать это в коде, вы можете сделать это:

EditText mEdit = (EditText) findViewById(R.id.yourid);
mEdit.setEnabled(false);

Это также жизнеспособная альтернатива:

EditText mEdit = (EditText) findViewById(R.id.yourid);
mEdit.setKeyListener(null);

Если вы собираетесь сделать свой EditText не редактируемый, я могу предложить использовать виджет TextView вместо EditText, так как использование EditText кажется бесполезным в этом случае.

EDIT: Изменена некоторая информация, так как я обнаружил, что android:editable устарел, и вы должны использовать android:inputType="none", но есть ошибка об этом в коде Android; Поэтому, пожалуйста, проверьте .

Ответ 2

 <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/editTexteventdate"
            android:background="@null"
            android:hint="Date of Event"
            android:textSize="18dp"
            android:textColor="#fff"
            android:editable="false"
            android:focusable="false"
            android:clickable="false"

            />

Добавьте это

Android: редактируемые = "ложь"

Android: фокусируемый = "ложь"

Android: кликабельны = "ложь"

его работа для меня

Ответ 3

Если вы хотите сделать EditText недоступным для редактирования из кода:

void disableInput(EditText editText){
    editText.setInputType(InputType.TYPE_NULL);
    editText.setTextIsSelectable(false);
    editText.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v,int keyCode,KeyEvent event) {
                return true;  // Blocks input from hardware keyboards.
        }
    });
}

Если вы хотите удалить горизонтальную линию вашего EditText, просто добавьте:

editText.setBackground(null);

Если вы хотите, чтобы пользователи копировали содержимое EditText, используйте:

editText.setTextIsSelectable(true);

Ответ 4

Я предполагаю, что я опоздал, но используйте следующее вместе, чтобы заставить это работать:

 android:inputType="none"
 android:enabled="false"

Ответ 5

Если вы действительно хотите использовать editText, а не textView, рассмотрите возможность использования этих трех:

android:focusable="false"

android:clickable="false"

android:longClickable="false"

РЕДАКТИРОВАТЬ: атрибут longClickable отключает длительное нажатие, которое приводит к тому, что параметры "Вставить" и "Выбрать все" отображаются в виде всплывающей подсказки.

Ответ 6

Добавьте строку ниже в текстовом редакторе.

android:editable="false"
android:focusable="false"
android:clickable="false"

Это работает для меня

Ответ 7

Использовать этот:

EditText edtText = (EditText) findViewById(R.id.yourEditTextId);

edtText.setEnabled(false);

также вы можете использовать это в вашем XML файле.

Ответ 8

У меня тоже была эта пробема.

Я сделал это:

<EditText
    android:layout_width="30dp"
    android:layout_height="wrap_content"
    android:id="@+id/yourid"
    android:editable="false"
    android:inputType="none" />

Ответ 9

Мое требование состояло в том, чтобы иметь внешний вид редактируемого текста и открывать всплывающее окно по его щелчку, но включение в качестве ложного не позволит прослушивателю щелчков по нему. Так я и сделал.

 <EditText
        android:id="@+id/tvCustomerAge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:minWidth="80dp"
        android:layout_alignParentEnd="true"
        android:drawableRight="@drawable/arrow_down"
        android:inputType="none"
        android:focusable="false"
        android:clickable="true"
        tools:text="24"/>