Сьогодні я все ще використовую editable="false"
, але також і з focusable="false"
.
Я думаю, що випадок, який нам потрібно зробити EditText не можна редагувати, це тому, що ми хочемо зберегти його стиль EditText (з цим підкресленням, з підказкою тощо), але він приймає інші дані замість тексту. Наприклад, випадаючий список.
У такому випадку використання нам потрібно мати можливість EditText
натискання (таким чином, enabled="false"
це не підходить). Налаштувавши focusable="false"
цей трюк, проте я все ще можу довго триматись у редакторі EditText і вставляти власний текст на нього із буфера обміну . Залежно від вашого коду та способу обробки, це навіть може призвести до збою вашої програми.
Так що я теж використовував editable="false"
і зараз все чудово, крім попередження.
EditText
, зберігаючи при цьому ці властивості, просто використовуватиUI.setReadOnly(myEditText, true)
з цієї бібліотеки . Якщо ви хочете повторити цю поведінку без бібліотеки, перегляньте вихідний код цього маленького методу.