Disabling of EditText in Android
In my application, I have an EditText that the user only has Read access not Write access.
In code I set android:enabled="false"
.
Although the background of EditText changed to dark, when I click on it the keyboard pops up and I can change the text.
What should I set to disable EditText?
Solution 1:
I believe the correct would be to set android:editable="false"
.
And if you wonder why my link point to the attributes of TextView
, you the answer is because EditText
inherits from TextView
:
EditText is a thin veneer over TextView that configures itself to be editable.
Update:
As mentioned in the comments below, editable
is deprecated (since API level 3). You should instead be using inputType
(with the value none
).
Solution 2:
use EditText.setFocusable(false)
to disable editingEditText.setFocusableInTouchMode(true)
to enable editing;
Solution 3:
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.