に実装onKeyDown()
し、Activity
キー イベントを処理する UI ウィジェットが他にない場合は、キーボードからキーを押すたびに取得する必要があります。以下の例は、少なくとも AZ で機能するはずであり、キープレスを単に「出力」することを目的としていTextView
ます。
それが十分でない場合は、キーコードを文字にマップするためのより洗練された方法を追加する必要があるかもしれません。(たとえば、スペースは機能しません。数値はおそらく機能しません)
public class KeyActivity extends Activity {
// should work for a-z
private static final Pattern KEYCODE_PATTERN = Pattern.compile("KEYCODE_(\\w)");
private TextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// there is just a TextView, nothing that handle keys
mTextView = (TextView) findViewById(R.id.textView1);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
String key = KeyEvent.keyCodeToString(keyCode);
// key will be something like "KEYCODE_A" - extract the "A"
// use pattern to convert int keycode to some character
Matcher matcher = KEYCODE_PATTERN.matcher(key);
if (matcher.matches()) {
// append character to textview
mTextView.append(matcher.group(1));
}
// let the default implementation handle the event
return super.onKeyDown(keyCode, event);
}
}