Ты неправильно обрабатываешь нажатия.
View.OnKeyListener#onKey вызывается при нажатии кнопки на физической клавиатуре. Реагирование на нажатия цифр программной клавиатуры, наверное, относятся к исключениям, упомянутым в документации:
Key presses in software keyboards will generally NOT trigger this method, although some may elect to do so in some situations.
Обрабатывать нажатия в EditText нужно так:
// EditText edit = ..;
edit.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN) {
switch(event.getKeyCode()) {
case KeyEvent.KEYCODE_ENTER:
// Нажат Enter
break;
}
}
return false;
}
});
Смотри
TextView.OnEditorActionListener#onEditorAction и имей также в виду, что возвращаемое значение (true/false) имеет значение тоже.