2010年3月8日月曜日

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

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

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

InputMethodManager を使う方法です。

で、

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

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

ということで、

SearchManager の onDismissListener でやりましょう。

コードはこんな感じ

onCreate() の中です。
  1. SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE);  
  2. searchManager.setOnDismissListener(new SearchManager.OnDismissListener() {  
  3.      
  4.     @Override  
  5.     public void onDismiss() {  
  6.         InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);             
  7.         inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);              
  8.     }  
  9. });  

0 件のコメント:

コメントを投稿