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"/>