How to disable EditText in Android

AndroidAndroid EdittextDisabled Input

Android Problem Overview


How can I disable typing in an EditText field in Android?

Android Solutions


Solution 1 - Android

you can use EditText.setFocusable(false) to disable editing
EditText.setFocusableInTouchMode(true) to enable editing;

Solution 2 - Android

In code:

editText.setEnabled(false);

Or, in XML:

android:editable="false"

Solution 3 - 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.

Solution 4 - Android

Assuming editText is you EditText object:

editText.setEnabled(false);

Solution 5 - Android

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 :

Enabled EditText

Disabled EditText :

Disabled EditText

It works for me and hope it helps you.

Solution 6 - Android

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

In code:

editText.setEnabled(false); Or, in XML: android:editable="false"

Solution 7 - Android

Edittext edittext = (EditText)findViewById(R.id.edit);
edittext.setEnabled(false);

Solution 8 - Android

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);
}

Solution 9 - Android

You can write edittext.setInputType(0) if you want to show the edittext but not input any values

Solution 10 - Android

The below code disables the EditText in android

editText.setEnabled(false);

Solution 11 - Android

edittext.setFocusable(false); 
edittext.setEnabled(false);
	
InputMethodManager imm = (InputMethodManager)
  getSystemService(Context.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);
  //removes on screen keyboard

Solution 12 - Android

To disable a edittext in android:

editText.setEnabled(false);

Solution 13 - Android

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

  1. First create the object

  2. Declare EditText et1;

  3. Get by id

    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.

Solution 14 - Android

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

Solution 15 - Android

The XML editable property is deprecated since API LEVEL 15.

You should use now the inputType property with the value none. But there is a bug that makes this functionality useless.

Here you can follow the issue status.

Solution 16 - Android

Set inputType attribute to none in your layout.xml file under EditText

Solution 17 - Android

try this Kotlin code,

editField.isEnabled = !editField.isEnabled

Solution 18 - Android

Right click the text area and untick the editable option:

enter image description here

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionaj10View Question on Stackoverflow
Solution 1 - AndroidchaitanyaView Answer on Stackoverflow
Solution 2 - AndroidGabriel NegutView Answer on Stackoverflow
Solution 3 - AndroidMidhunView Answer on Stackoverflow
Solution 4 - AndroidMByDView Answer on Stackoverflow
Solution 5 - AndroidMaksym KalinView Answer on Stackoverflow
Solution 6 - Androidramit girdharView Answer on Stackoverflow
Solution 7 - Androidsaigopi.meView Answer on Stackoverflow
Solution 8 - AndroidDanylo VolokhView Answer on Stackoverflow
Solution 9 - AndroidJaydeep KhamarView Answer on Stackoverflow
Solution 10 - AndroidudayView Answer on Stackoverflow
Solution 11 - AndroidKumar SukhaniView Answer on Stackoverflow
Solution 12 - AndroidVineetView Answer on Stackoverflow
Solution 13 - AndroidNimisha PatelView Answer on Stackoverflow
Solution 14 - AndroidGimerView Answer on Stackoverflow
Solution 15 - AndroidBruguiView Answer on Stackoverflow
Solution 16 - AndroidKumar KundananiView Answer on Stackoverflow
Solution 17 - AndroidThomas VtView Answer on Stackoverflow
Solution 18 - AndroidNuwan BandaraView Answer on Stackoverflow