Как сделать textinputedittext редактируемым и не редактируемым программно

В настоящее время я использую TextInputEditText внутри TextInputLayout. И хочет программно контролировать редактируемость. Сделайте его редактируемым при нажатии кнопки и не редактируемым нажатием другой кнопки.

  deliveryQuantityTie.setFocusable(false);

set focus false делает его недоступным для редактирования, но set focus true не делает его редактируемым. я также пробовал переключать кликабельность, видимость курсора, setkeylistener, ничего не делало его редактируемым снова.

что я должен использовать, чтобы сделать его редактируемым и нередактируемым в коде Java?


person Bashir Fardoush    schedule 09.05.2019    source источник
comment
Возможный дубликат Сделать EditText только для чтения   -  person Morteza Jalambadani    schedule 09.05.2019


Ответы (3)


сделайте свойство editText setFocusable(true) и setEnabled(true) равным true, чтобы сделать его редактируемым, это решит вашу проблему

person Vikas Sharma    schedule 09.05.2019
comment
проблема решена, но setFocusable(false) работает нормально, но setFocusable(true) не работает из java-кода. - person Bashir Fardoush; 09.05.2019
comment
перед setFocusable(true) вы можете включить свой текст редактирования и проверить, работает ли он - person Vikas Sharma; 09.05.2019

Вы можете использовать это

fragmentRegistrationFirstScreenBinding.etName.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (hasFocus){
                make editable and let user edit them
            }else {
                do not make editable
            }
        }
    });
person Venky    schedule 09.05.2019

Используйте setEnable (логическое)

Как отключить?

TextInputEditText tie = findViewById(R.id.my_textInputEditText);
tie.setEnabled(false);

Результат: отключен

введите здесь описание изображения

Как снова включить?

tie.setEnabled(true);

Результат: Включено

введите здесь описание изображения

person Rohit Singh    schedule 11.02.2020