Кнопка меню, открывающая клавиатуру
Хотелось бы узнать, как клавиатура выскакивает при длительном нажатии на кнопку аппаратного меню. Я читал, что ключевые слушатели не доступны в сервисах. Итак, как именно кнопка меню запускает отображение клавиатуры?
РЕДАКТИРОВАТЬ
Так как мой вопрос кажется немного непоследовательным, вот что я имею в виду.
Когда я нахожусь в ящике приложения и долго нажимаю кнопку меню, появляется клавиатура. Или, если я использую приложение и снова долго нажимаю кнопку меню, клавиатура все равно выскакивает.
Итак, я предполагаю, что это сервис клавиатуры, но у сервисов нет ключевых слушателей.
Как это возможно тогда?
3 ответа
Нет никакого способа добавить keyListener к Сервису в Android. Кнопка меню запускает клавиатуру в моем, потому что это пользовательский мод, и функция была встроена в сам фреймворк. Не из-за сервисного кейлистера или других теорий.
Если вам интересно, я использую CM7.2.0-Buzz
@Override
public boolean onKeyLongPress(int keycode, KeyEvent event){
if (keycode == KeyEvent.KEYCODE_MENU){
InputMethodManager inputMethodManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.showSoftInput(lv, InputMethodManager.SHOW_IMPLICIT);
}
return true;
}
Поместите этот код на кнопку прослушивания
Если вы хотите показать экранную клавиатуру
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
если ты хочешь это скрыть
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);