Androidのソフトキーボードでキャンバスに書き込もうとしています。
私の質問は、ソフト キーボードを表示し、キャンバス上で生成されるイベントを処理する方法です。私のコードは次のとおりです。
public class DrawView extends View {
Paint paint = new Paint();
private static final String LOGID = "MxView";
String message = "No key pressed yet.";
DrawView(Context context) {
super(context);
setFocusable(true);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawText(message, 5, 20, paint);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent ev) {
switch(keyCode) {
case KeyEvent.KEYCODE_ENTER:
message = "Key is Enter!";
Log.i(LOGID, message);
break;
case KeyEvent.KEYCODE_E:
message = "Key is E!";
Log.i(LOGID, message);
break;
default:
return false;
}
invalidate();
return true;
}
}