BACKを押すと、searchViewを閉じるコードが必要です。これまでは、BACKを押すとキーボードを閉じるコードしかありませんでした。onBackptressedが動作しないときにonOptionsItemSelected(MenuItemアイテム)のsearchViewを閉じるにはどうすればいいですか?
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (item.getItemId() == android.R.id.home) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
View view = this.getCurrentFocus();
if (view != null) {
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
return super.onOptionsItemSelected(item);
}
次の行が廃止されました
onBackPressed();
...私は次の行を試みたが、この行は「背中」はクリック何らかの理由で全体のアプリを閉じて.. 。
MenuItemCompat.collapseActionView(menuItem);
私はstackOverflowでいくつかの回答を見ましたが、 o onBackPressed()
で行うか、searchView.collapseActionView()
を追加してください。 しかし、で再宣言してからsearchView.collapseActionView()
を追加しないと、searchViewをonOptionsItemSelected(MenuItem item)
に追加できませんが、BACKを押すとアプリがクラッシュします。
私はキーボードを閉じることができましたが、どのようにしてonOptionsItemSelected(MenuItem item)
のsearchViewを閉じるのですか?
EDIT:
私はonBackPressed()
またはsuper.onBackPressed()
またはthis.onBackPressed()
を使用し、最初に私は、「戻る」ボタンをsearchViewをクリックして、時間とキーボードに近いが、私はsearchViewとキーボードを開くために、再度検索アイコンをクリックしてくださいポップアップ、再び "戻る"をクリックすると、アプリ全体がクラッシュせずに終了し、閉じてAndroidのホーム画面に移動します。なぜこうなった?
このコードは、私のために動作しません。 – iBEK
私の更新された答えを確認してください – diegoveloper
このコードは私にとってはうまくいかず、私はそれをstackOverflowで見ました。 – iBEK