2009年8月26日水曜日

EditTextでソフトキーボードのイベントをハンドリングする

以下のような実装でEditText上でEnterキーが押下された際に
検索を実行できるようになりました。

EditText searchWord = (EditText) findViewById(R.id.search_word);
searchWord.setOnKeyListener(new View.OnKeyListener(){
public boolean onKey(View v, int keyCode, KeyEvent event) {
// ここではEditTextに改行が入らないようにしている。
if (event.getAction() == KeyEvent.ACTION_DOWN) {
return true;
}
// Enterを離したときに検索処理を実行
if (event.getAction() == KeyEvent.ACTION_UP
&& keyCode == KeyEvent.KEYCODE_ENTER) {
EditText word = (EditText) findViewById(R.id.search_word);
if (word != null && word.length() != 0) {
// ここに検索処理(省略)
}
return true;
}
return false;
}
});
なかなか調べてもわからなかったのでメモしておきます。

0 件のコメント:

コメントを投稿