2011/03/15

Android - imeOptions 補足

キーボードの決定ボタン - imeOptions (EditText)の記事で, 決定ボタンのアイコンを変更したりしたのですが、Simejiなどのキーボードを使用した場合, アイコンが「改行」のままで, さらにそれをクリックした際のイベントが拾えてないことがわかりました。

< 対応前 (前回の記事の場合) >

EditText edittext1 = (EditText) findViewById(R.id.edittext1);
edittext1.setOnEditorActionListener(new OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_SEARCH) {
            search(); // search処理
        }
        return true; // falseを返すと, IMEがSearch→Doneへと切り替わる
    }
});

< 対応後 (imeOptionsで指定できない場合にも対応) >

EditText edittext1 = (EditText) findViewById(R.id.edittext1);
edittext1.setOnEditorActionListener(new OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_SEARCH || event.getAction() == KeyEvent.ACTION_UP) {
            search(); // search処理
        }
        return true; // falseを返すと, IMEがSearch→Doneへと切り替わる
    }
});

これで一応解決できました。(ほかに解決法ないのかな。。)

0 コメント:

コメントを投稿

 
;