Як можна відключити введення тексту в EditText
полі в Android?
Як можна відключити введення тексту в EditText
полі в Android?
Відповіді:
ви можете використовувати, EditText.setFocusable(false)
щоб вимкнути редагування, EditText.setFocusableInTouchMode(true)
щоб увімкнути редагування;
setFocusable(false)
я міг просто перевернути setFocusable (true) ... не так. Налаштування setFocusableInTouchMode(true)
зробило для мене фокус.
Ви можете спробувати наступний спосіб:
private void disableEditText(EditText editText) {
editText.setFocusable(false);
editText.setEnabled(false);
editText.setCursorVisible(false);
editText.setKeyListener(null);
editText.setBackgroundColor(Color.TRANSPARENT);
}
Увімкнено EditText:
Вимкнено редагування тексту:
Це працює для мене, і сподіваюся, це допоможе вам.
Просто встановіть для фокусуючої властивості вашого 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>
Наведені нижче варіанти не працюють
У коді:
editText.setEnabled(false);
Або в XML:
android:editable="false"
Edittext edittext = (EditText)findViewById(R.id.edit);
edittext.setEnabled(false);
Увімкнути:
private void enableEditText() {
mEditText.setFocusableInTouchMode(true);
mEditText.setFocusable(true);
mEditText.setEnabled(true);
}
Вимкнути:
private void disableEditText() {
mEditText.setEnabled(false);
mEditText.setFocusable(false);
mEditText.setFocusableInTouchMode(false);
}
Наведений нижче код вимикає EditText в android
editText.setEnabled(false);
Ви можете писати, edittext.setInputType(0)
якщо хочете показати текст редагування, але не вводити жодних значень
edittext.setFocusable(false);
edittext.setEnabled(false);
InputMethodManager imm = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);
//removes on screen keyboard
За моїми словами ... якщо ви вже оголосили edittext
у файлі XML і встановили властивість у файлі XML "android:enabled=false"
і відключили його під час виконання до нього на той час у файлі Java, додавши лише 2 або 3 рядки
Отримати за ідентифікатором
et1 = (EditText) FindViewById(R.id.edittext1);
et1.setEnabled(false);
Ви можете ввімкнути або вимкнути кожен елемент керування під час виконання за допомогою файлу Java та часу проектування за допомогою файлу XML.
Напишіть це по батькові:
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
Приклад:
<RelativeLayout
android:id="@+id/menu_2_zawezanie_rl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/menu_2_horizontalScrollView"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
android:orientation="horizontal"
android:background="@drawable/rame">
<EditText
android:id="@+id/menu2_et"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/menu2_ibtn"
android:gravity="center"
android:hint="@string/filtruj" >
</EditText>
<ImageButton
android:id="@+id/menu2_ibtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:background="@null"
android:src="@drawable/selector_btn" />
editable
Властивість XML застаріла, оскільки API LEVEL 15 .
Вам слід використовувати inputType
властивість зі значенням none
. Але є помилка, яка робить цю функцію марною.
Тут ви можете стежити за станом проблеми.
Встановіть inputType
атрибут none у файлі layout.xml у розділі EditText
Клацніть правою кнопкою миші текстову область і зніміть прапорець, який можна редагувати: