Зазвичай вам потрібна максимальна сумісність з EditText
нормальною поведінкою.
Таким чином , ви повинні НЕ використовувати в android:focusable="false"
якості, так, вид просто не буде фокусування більше , що погано виглядає. Наприклад, фон, який можна малювати, більше не відображатиметься у своєму "натиснутому" стані.
Натомість вам слід зробити наступне:
myEditText.setInputType(InputType.TYPE_NULL);
myEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
}
}
});
Установивши тип введення на TYPE_NULL
, ви запобігаєте спливаючій клавіатурі програмного забезпечення.
Встановивши OnClickListener
і OnFocusChangeListener
, ви переконуєтесь, що ваше діалогове вікно завжди відкриватиметься, коли користувач клацає в EditText
поле, як коли він фокусується (перший клік), так і під час наступних клацань.
Просто налаштування android:inputType="none"
або setInputType(InputType.TYPE_NULL)
недостатньо завжди. Для деяких пристроїв слід також встановити android:editable="false"
XML, хоча він застарілий. Якщо він більше не працює, його буде просто проігноровано (як і всі не підтримувані атрибути XML).