Кнопка меню, открывающая клавиатуру

Хотелось бы узнать, как клавиатура выскакивает при длительном нажатии на кнопку аппаратного меню. Я читал, что ключевые слушатели не доступны в сервисах. Итак, как именно кнопка меню запускает отображение клавиатуры?

РЕДАКТИРОВАТЬ

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

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

Итак, я предполагаю, что это сервис клавиатуры, но у сервисов нет ключевых слушателей.

Как это возможно тогда?

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);
Другие вопросы по тегам