We can set editable property of EditText
in XML layout but not programatically, but there is no setEditable()
method!
If EditText
I did it in a easier way , setEditable and setFocusable false. but you should check this.
How to replicate android:editable="false" in code?
Since setEditable(false)
is deprecated, use textView.setKeyListener(null);
to make editText non-clickable.
How to do it programatically :
To enable EditText use:
et.setEnabled(true);
To disable EditText use:
et.setEnabled(false);
This may help:
if (cbProhibitEditPW.isChecked()) { // disable editing password
editTextPassword.setFocusable(false);
editTextPassword.setFocusableInTouchMode(false); // user touches widget on phone with touch screen
editTextPassword.setClickable(false); // user navigates with wheel and selects widget
isProhibitEditPassword= true;
} else { // enable editing of password
editTextPassword.setFocusable(true);
editTextPassword.setFocusableInTouchMode(true);
editTextPassword.setClickable(true);
isProhibitEditPassword= false;
}
editText.setInputType(InputType.TYPE_NULL);
Once focus of edit text is removed, it would not allow you to type even if you set it to focusable again.
Here is a way around it
if (someCondition)
editTextField.setFocusable(false);
else
editTextField.setFocusableInTouchMode(true);
Setting it true in setFocusableInTouchMode()
seems to do the trick.