0

Контекст: Я работаю с настройками, используя PreferenceFragment и Activity (Android 4.4.2 - API 19).Клавиатура Android остается открытой после подтверждения диалога EditTextPreference

Проблема: при нажатии «ОК» в появившемся диалоговом окне от EditTextPreference мягкая клавиатура остается открытой.

Попытка решения: Ручное закрытие мягкой клавиатуры onSharedPreferenceChanged внутри фрагмента. Только Работает, если пользователь Изменения и подтверждают текст. Не Работает, если пользователь отменяет. Она также производит другую проблему, а именно: Когда пользователь нажимает сделать, он меняет текст, закрывает клавиатуру, но оставляет диалоговое окно открыл.

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

ответ

0

Вы можете попробовать это:

View view = this.getCurrentFocus(); 
if (view != null) { 
    InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
    inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); 
} 

Force Android, чтобы скрыть виртуальную клавиатуру с помощью InputMethodManager.

+0

Вот что я делаю под фрагментом 'onSharedPreferenceChanged'. Но проблема в том, что если пользователь нажимает «ОК» без изменения текста или кликов «ОТМЕНА», он не будет выполнен. – vleong

Смежные вопросы