Как программно установить редактируемый true / false EditText в Android? - PullRequest
33 голосов
/ 02 июля 2011

Мы можем установить редактируемое свойство EditText в макете XML, но не программно, но нет метода setEditable()!

Если EditText не Включено [by setEnabled(false)] это все еще Редактируемый !

Ответы [ 12 ]

40 голосов
/ 02 июля 2011

Это может помочь:

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;
}
19 голосов
/ 02 июля 2011

Я сделал это более простым способом, setEditable и setFocusable false.но вы должны проверить это.

Как скопировать Android: editable = "false" в коде?

7 голосов
/ 22 марта 2014

Получить KeyListener значение EditText по editText.getKeyListener() и сохраните в переменной типа KeyListener , которая будет содержать Редактируемое значение свойства:

KeyListener variable;
variable = editText.getKeyListener(); 

Установите для свойства Editable EditText значение false как:

 edittext.setKeyListener(null);

Теперь установите для свойства Editable EditText значение true как:

editText.setKeyListener(variable);  

Примечание: В XML свойство Editable по умолчанию EditText должно иметь значение true.

4 голосов
/ 23 мая 2016

Как это сделать программно:

Чтобы включить EditText, используйте:

et.setEnabled(true);

Чтобы отключить EditText, используйте:

et.setEnabled(false);
4 голосов
/ 26 ноября 2015
editText.setInputType(InputType.TYPE_NULL);
3 голосов
/ 06 января 2014

надеюсь, что это поможет вам:

edittext1.setKeyListener(null);
edittext1.setCursorVisible(false);
edittext1.setPressed(false);
edittext1.setFocusable(false);
2 голосов
/ 31 декабря 2015

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

Вот способ обойти это

if (someCondition)
   editTextField.setFocusable(false);
else
   editTextField.setFocusableInTouchMode(true);

Установка значения true в setFocusableInTouchMode(), кажется, помогает.

1 голос
/ 04 июля 2015
editText.setFocusable(false);
editText.setClickable(false);
1 голос
/ 15 ноября 2013

попробуйте,

EditText editText=(EditText)findViewById(R.id.editText1);

editText.setKeyListener(null);

Работает нормально ...

1 голос
/ 02 июля 2011

Попробуй это у меня нормально работает ..

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) : "";

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