如何在 Android 中禁用键入 EditText字段?
EditText
Assuming editText is you EditText object:
editText
editText.setEnabled(false);
In code:
Or, in XML:
android:editable="false"
To disable a edittext in android:
You can write edittext.setInputType(0) if you want to show the edittext but not input any values
edittext.setInputType(0)
The below code disables the EditText in android
I think its a bug in android..It can be fixed by adding this patch :) Check these links question 1 and question 2
Hope it will be useful.
you can use EditText.setFocusable(false) to disable editingEditText.setFocusableInTouchMode(true) to enable editing;
EditText.setFocusable(false)
EditText.setFocusableInTouchMode(true)
edittext.setFocusable(false); edittext.setEnabled(false); InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0); //removes on screen keyboard
Write this in parent:
android:descendantFocusability="beforeDescendants" android:focusableInTouchMode="true"
Example:
<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" />
According to me...if you have already declared the edittext in the XML file and set the property in the XML file "android:enabled=false" and disable at runtime to it at that time in java file adding only 2 or 3 lines
edittext
"android:enabled=false"
Get by id
et1 = (EditText) FindViewById(R.id.edittext1); et1.setEnabled(false);
et1 = (EditText) FindViewById(R.id.edittext1);
et1.setEnabled(false);
You can do enable or disable to every control at run time by java file and design time by XML file.
Just set focusable property of your edittext to "false" and you are done.
<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>
Below options doesn't work
editText.setEnabled(false); Or, in XML: android:editable="false"
You can try the following method :
private void disableEditText(EditText editText) { editText.setFocusable(false); editText.setEnabled(false); editText.setCursorVisible(false); editText.setKeyListener(null); editText.setBackgroundColor(Color.TRANSPARENT); }
Enabled EditText :
Disabled EditText :
It works for me and hope it helps you.
Edittext edittext = (EditText)findViewById(R.id.edit); edittext.setEnabled(false);
Enable:
private void enableEditText() { mEditText.setFocusableInTouchMode(true); mEditText.setFocusable(true); mEditText.setEnabled(true); }
Disable:
private void disableEditText() { mEditText.setEnabled(false); mEditText.setFocusable(false); mEditText.setFocusableInTouchMode(false); }
The XML editable property is deprecated since API LEVEL 15.
editable
You should use now the inputType property with the value none. But there is a bug that makes this functionality useless.
inputType
none
Here you can follow the issue status.
Right click the text area and untick the editable option:
Set inputType attribute to none in your layout.xml file under EditText
try this Kotlin code,
editField.isEnabled = !editField.isEnabled