2010年3月8日月曜日

Android SearchManager ソフトキーボードを消すぜ!

入力ボックスに文字を入れて、ボタンを押したときに
ソフトキーボードを消す方法は以前のエントリに載せました。

Android ボタンを押したときにソフトキーボードを消す

InputMethodManager を使う方法です。

で、

SearchManager で onNewIntent() でこれをやっても
ソフトキーボードが消えない消えない。

まぁ。よくよく考えれば、検索ボックスにソフトキーボードがバインド
されているんだから、intent が帰ってきたところじゃなくて、
検索ボックスが消された(=dismiss) されたときに処理しないと
だめじゃん。ということに気づきました。

ということで、

SearchManager の onDismissListener でやりましょう。

コードはこんな感じ

onCreate() の中です。

SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE);
searchManager.setOnDismissListener(new SearchManager.OnDismissListener() {

@Override
public void onDismiss() {
InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
});

0 件のコメント:

コメントを投稿