2015-05-24 3 views
2

Существует четкий способ установить onClickListener для кнопок как Done кнопку или Next кнопки с помощью OnEditorActionListener. Но как я могу установить onClickListener для таких кнопок, как speaker или кнопку с буквой, как письмо M?Как установить onClickListener для кнопки на клавиатуре Android?


Таким образом, после неудачной попытки использовать setOnKeyListener, я взглянул на keyEvent в developer.android и нашел следующую цитату:

Как мягкие методы могут использовать несколько и изобретательные способы ввода текст, нет гарантии, что любое нажатие клавиши на мягкой клавиатуре будет генерировать ключевое событие: это остается на усмотрение IME, а в факту отправки таких событий не рекомендуется. Вы никогда не должны полагаться на , получая KeyEvents для любой клавиши по методу мягкого ввода. В частности, клавиатура программного обеспечения по умолчанию никогда не отправит какое-либо ключевое событие в любое приложение , нацеленное на Jelly Bean или позже, и будет отправлять события для некоторых нажатий клавиш удаления и возврата приложениям , нацеленным на сэндвич с мороженым или ранее. Имейте в виду, что другие методы ввода никогда не могут отправлять ключевые события независимо от версии. Рассмотрите возможность использования действий редактора, таких как IME_ACTION_DONE, если вам нужно специальное взаимодействие с программной клавиатурой, так как оно дает больше видение пользователя о том, как ваше приложение будет реагировать на нажатие клавиши .

Эта цитата существует без какого-либо способа преодолеть это, так? !!

ответ

2

Вы пытались использовать onKeyListener? Пример

mEditText.setOnKeyListener(new OnKeyListener() { 
@Override 
public boolean onKey(View v, int keyCode, KeyEvent event) { 
    if(keyCode == KeyEvent.KEYCODE_M){ 
     // Example for M key 
     // Code... 
     return true; 
    } 
    return false; 
} 
}); 

Вы можете прочитать больше о KeyEvent и других ключевых кодов here.

+0

Ну, я уже пробовал этот способ, я не знаю причины, но он даже не вводит метод onClick –

+0

Ну, он ввел метод только тогда, когда я использовал Next или Done –

+0

, посмотрите мое обновление до вопрос –

Смежные вопросы