Подтвердить что ты не робот

Скрыть мягкую клавиатуру

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

  InputMethodManager inputManager = (InputMethodManager) 
         getSystemService(INPUT_METHOD_SERVICE);

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

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

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

inputManager.toggleSoftInput(0, 0);

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

Любые идеи?

Спасибо

4b9b3361

Ответ 1

Возможно, вы захотите попробовать:

InputMethodManager inputManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(editView.getWindowToken(), 0);