Мне нужно иметь возможность скрывать программную клавиатуру в ответ на нажатие кнопки. Я видел множество сообщений по этой теме, и мне кажется, что решение состоит в использовании InputMethodManager
, но мне не удалось заставить его работать на меня. Предположительно следующее будет скрывать программную клавиатуру:
InputMethodManager inputManager = (InputMethodManager)
getSystemService(INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromInputMethod(editView.getWindowToken(), 0);
Однако это не работает для меня (можно ли предположить, почему?), И даже если это так, Я хочу иметь возможность скрыть клавиатуру независимо от того, какое представление имеет ввод, и я могу не знать, что это за представление.
Я обнаружил, что вызов:
inputManager.toggleSoftInput(0, 0);
скроет клавиатуру, если она в настоящее время отображается. К сожалению, он также покажет это, если он в настоящее время скрыт. Так что, чтобы это сработало для меня, мне понадобится способ определить, виден ли он в настоящее время.
Есть идеи?
Спасибо