使用ActionBar返回时,Android软输入不会消失

使用ActionBar返回时,Android软输入不会消失,android,soft-input-panel,Android,Soft Input Panel,我在SearchActivity上使用Android SearchWidget进行搜索。它自动获得焦点,并显示软输入键盘 但是,当用户返回ActionBar()时,即使活动已停止,软输入仍保留在屏幕上 android:windowSoftInputMode="stateHidden|adjustUnspecified" 如上所述 它似乎只在前进时有效,而不会回来 问题:可能有许多活动调用SearchActivity,对他们来说,使stateAllwayshidden可能不合适。(换句话说:我不

我在SearchActivity上使用Android SearchWidget进行搜索。它自动获得焦点,并显示软输入键盘

但是,当用户返回ActionBar()时,即使活动已停止,软输入仍保留在屏幕上

android:windowSoftInputMode="stateHidden|adjustUnspecified"
如上所述

它似乎只在前进时有效,而不会回来

问题:可能有许多活动调用SearchActivity,对他们来说,使
stateAllwayshidden
可能不合适。(换句话说:我不知道所有其他活动的行为。)

更新:给出代码,实际上只是
actionBar.setDisplayHomeAsUpEnabled(true)

UDATE 2:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
   return super.onOptionsItemSelected(item);
}
使用杆导线和:


在不使用BackButton的情况下返回的地方发布代码。它是
actionBar.setDisplayHomeAsUpEnabled(true)您将setDisplayHomeAsUpEnabled的操作放在何处??发布您的OnOptions ItemSelected。这只是调用
super
。然而,无论选择了什么项目,
onOptionsItemSelected
都是隐藏软输入的好地方。。。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
   return super.onOptionsItemSelected(item);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.

    // fix bug when soft-input stays on the screen when navigating away with ActionBar home/back button
    // https://stackoverflow.com/questions/1109022/close-hide-the-android-soft-keyboard
    //getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); had no affect
    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    //check if no view has focus:
    View view = this.getCurrentFocus();
    if(view != null){
        //imm.hideSoftInputFromWindow(v.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);      
        imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
    }
    return super.onOptionsItemSelected(item);
}