Android - Listen for key presses on Numeric keypad?
I use the fo开发者_JS百科llowing code to listen for the key presses of 0 - 9 from the soft input keyboard on Android:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_0)
{
return super.onKeyDown(keyCode, event);
}
if(keyCode == KeyEvent.KEYCODE_1)
{
return super.onKeyDown(keyCode, event);
}
if(keyCode == KeyEvent.KEYCODE_2)
{
return super.onKeyDown(keyCode, event);
}
if(keyCode == KeyEvent.KEYCODE_3)
{
return super.onKeyDown(keyCode, event);
}
if(keyCode == KeyEvent.KEYCODE_4)
{
return super.onKeyDown(keyCode, event);
}
if(keyCode == KeyEvent.KEYCODE_5)
{
return super.onKeyDown(keyCode, event);
}
if(keyCode == KeyEvent.KEYCODE_6)
{
return super.onKeyDown(keyCode, event);
}
if(keyCode == KeyEvent.KEYCODE_7)
{
return super.onKeyDown(keyCode, event);
}
if(keyCode == KeyEvent.KEYCODE_8)
{
return super.onKeyDown(keyCode, event);
}
if(keyCode == KeyEvent.KEYCODE_9)
{
Log.d("Keycode", "Got KeyCode 9");
return super.onKeyDown(keyCode, event);
}
return true;
}
The code works when i display the soft input keyboard in the following mode:
However it does not work when I display the soft input keyboard in the following mode:
Why is this?
It is because there are different keycodes for the number pad. Unfortunately they were only introduced in API Level 11 (android 3.0, honeycomb) so you will have to find another way to address those guys for maximum compatibility.
精彩评论