更新 2013
年 9 月 12
日 私の古い回答は一部のソフト キーボードでのみ機能し、他のソフト キーボードでは機能しなかったようです。代替案を探してみましたが、一貫して機能するものは見つかりませんでした。最後に、カスタムキーボードを作成しました。幸いなことに、キーボードに数字が必要だったので、簡単に作成できました。カスタムキーボードの作成方法については、このガイドに従いました。
http://www.fampennings.nl/maarten/android/09keyboard/index.htm
古い回答
私は周りを検索しましたが、ソフトキーボードの onKeyListener でキーをリッスンする方法がないようです。ただし、 EditText を拡張して onKeyUp() をオーバーライドすることはできましたが、これは正常に機能します。
public class CustomEditText extends EditText
{
public CustomEditText(Context context)
{
super(context);
}
public CustomEditText(Context context, AttributeSet attrs)
{
super(context, attrs);
}
public CustomEditText(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event)
{
// Intercept keys here
return super.onKeyUp(keyCode, event);
}
}