Скрыть программную клавиатуру

Мне нужно иметь возможность скрывать программную клавиатуру в ответ на нажатие кнопки. Я видел множество сообщений по этой теме, и мне кажется, что решение состоит в использовании InputMethodManager , но мне не удалось заставить его работать на меня. Предположительно следующее будет скрывать программную клавиатуру:

  InputMethodManager inputManager = (InputMethodManager) 
         getSystemService(INPUT_METHOD_SERVICE);

  inputManager.hideSoftInputFromInputMethod(editView.getWindowToken(), 0);

Однако это не работает для меня (можно ли предположить, почему?), И даже если это так, Я хочу иметь возможность скрыть клавиатуру независимо от того, какое представление имеет ввод, и я могу не знать, что это за представление.

Я обнаружил, что вызов:

inputManager.toggleSoftInput(0, 0);

скроет клавиатуру, если она в настоящее время отображается. К сожалению, он также покажет это, если он в настоящее время скрыт. Так что, чтобы это сработало для меня, мне понадобится способ определить, виден ли он в настоящее время.

Есть идеи?

Спасибо

11
задан Reed 20 December 2011 в 22:16
поделиться