Android : SearchView を入れたダイアログで、キーボードを閉じた時にダイアログ自体を閉じる
SearchView#setOnQueryTextFocusChangeListener で hasFocus が false の時に Dialog#dismiss することで実現します。
通常は、1回目の BackKey でキーボードが閉じられるとともに EditText 部分がフォーカスを失い、2回目の BackKey でダイアログが閉じる、となるので 2度 BackKey を押すことになります。
(ダイアログ中の他の要素を操作することができなくなるので、ダイアログの場合にこれをそのまま使うことはなさそう。)
mSearchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if (hasFocus) { } else { dialog.dismiss(); } } });