Сделать поле EditText недоступным для редактирования - PullRequest
3 голосов
/ 25 января 2012

Как сделать поле EditText недоступным для редактирования через свойство inputType, когда

inputType="textPassword"

Моя проблема в том, что следующая строка кода делает пароль видимым.

password.setInputType(InputType.TYPE_NULL);

Уже попробовал следующее, но остается редактируемым

password.setEnabled(false)

Ответы [ 2 ]

3 голосов
/ 25 января 2012

Если вы играете с:

edittext.setFocusable();
edittext.setFocusableInTouchMode();

Вы сможете сделать EditText редактируемым / недоступным для редактирования, когда захотите.

2 голосов
/ 25 января 2012

Использование этого: Как сделать EditText недоступным для редактирования через XML в Android?

Вы сказали, что хотите, чтобы ваше поле было доступно для редактирования после некоторой логики. Сделайте это:

KeyListener keyLis = textView.getKeyListener();
textView.setKeyListener(null);

Затем, когда вы хотите, чтобы ваш TextView снова был редактируемым, сделайте следующее:

textView.setKeyListener(keyLis);

Документация для TextView класса:

Два метода:

getKeyListener()

setKeyListener(KeyListener keyLis)

EDIT

Я не нашел красивых ответов, но нашел несколько альтернативных способов сделать это:

  1. сделать недоступным для редактирования

    valueText.setEnabled(false); valueText.setClickable(false); valueText.setFocusable(false);

А потом

valueText.setEnabled(true);
valueText.setClickable(true);
valueText.setFocusable(true);
  1. Вы также можете изменить то, что происходит при редактировании текста, чтобы ничего не происходило: Можем ли мы иметь не редактируемый текст в тексте редактирования

    1. Есть и другие очень дикие решения. Хотя они совсем не красивые.

Я рекомендую использовать первоначальное решение, если кто-то не найдет более быстрый путь.

Извините, я не смог найти лучший способ сделать это: (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...