ActionBar に searchView があります。ユーザーが入力を完了したら、キーボードを閉じたい。searchView に次の queryTextListener があります
final SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String newText) {
// Do something
return true;
}
@Override
public boolean onQueryTextSubmit(String query) {
showProgress();
// Do stuff, make async call
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
return true;
}
};
同様の質問に基づいて、次のコードはキーボードを閉じる必要がありますが、この場合は機能しません。
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
私も試しました:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(searchView.getWindowToken(), 0);
どちらも機能しません。これが Honeycomb 固有の問題なのか、ActionBar の searchView に関連しているのか、あるいはその両方なのかはわかりません。誰かがこれを機能させたことがありますか、またはなぜ機能しないのか知っていますか?