Мы можем установить редактируемое свойство EditText
в макете XML, но не программно, но нет метода setEditable()
!
Если EditText
не Включено [by setEnabled(false)
], он все еще Редактируемый!
Мы можем установить редактируемое свойство EditText
в макете XML, но не программно, но нет метода setEditable()
!
Если EditText
не Включено [by setEnabled(false)
], он все еще Редактируемый!
Я сделал это проще, setEditable и setFocusable false. но вы должны это проверить.
Это может помочь:
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;
}
Извлеките значение KeyListener EditText
на editText.getKeyListener()
и сохранить в переменной KeyListener, которая будет содержать
Значение свойства Editable:
KeyListener variable;
variable = editText.getKeyListener();
Задайте для свойства Editable EditText
значение false:
edittext.setKeyListener(null);
Теперь установите для свойства Editable значение EditText
значение true:
editText.setKeyListener(variable);
Примечание: В XML свойство Editable по умолчанию для EditText
должно быть истинным.
editText.setInputType(InputType.TYPE_NULL);
надеюсь, что это поможет вам:
edittext1.setKeyListener(null);
edittext1.setCursorVisible(false);
edittext1.setPressed(false);
edittext1.setFocusable(false);
Попробуйте это, он отлично работает для меня.
EditText.setInputType(0);
EditText.setFilters(new InputFilter[] {new InputFilter()
{
@Override
public CharSequence filter(CharSequence source, int start,
int end, Spanned dest, int dstart, int dend)
{
return source.length() < 1 ? dest.subSequence(dstart, dend) : "";
}
}
});
попробуйте это,
EditText editText=(EditText)findViewById(R.id.editText1);
editText.setKeyListener(null);
Он отлично работает...
editText.setFocusable(false);
editText.setClickable(false);
Как только фокус текста редактирования удаляется, он не позволит вам вводить текст, даже если вы снова настроили его на фокусировку.
Вот путь вокруг него
if (someCondition)
editTextField.setFocusable(false);
else
editTextField.setFocusableInTouchMode(true);
Устанавливает значение true в setFocusableInTouchMode()
, похоже, делает трюк.
Как это сделать программно:
Чтобы включить использование EditText:
et.setEnabled(true);
Чтобы отключить использование EditText:
et.setEnabled(false);
Так как setEditable(false)
устарел, используйте textView.setKeyListener(null);
, чтобы сделать editText неактивным.
Простой и безопасный метод:
editText.clearFocus();
editText.setFocusable(false);