1

我有操作栏搜索菜单。当我点击搜索图标时,它会集中显示并显示软键盘。我想使用 onBackPressed 事件重置搜索。当我第一次按下后退按钮时,软键盘将被隐藏。我将再次按下返回按钮,搜索视图将被重置并折叠。

我尝试过这种方式但失败了

@Override
    public void onBackPressed() {
        // It's expensive, if running turn it off.
       // DataHelper.cancelSearch();
        hideKeyboard();
        super.onBackPressed();
    }
    private void hideKeyboard() {
        InputMethodManager imm = (InputMethodManager) 
            getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(mSearchView.getWindowToken(), 0);
    }

我的代码隐藏键盘,但是当我再次按下后退按钮时,它会导航到以前的意图。

4

1 回答 1

0

停止调用超级方法,然后您将不会导航到以前的活动,只会隐藏软键盘。

    @Override
    public void onBackPressed() {
        // It's expensive, if running turn it off.
       // DataHelper.cancelSearch();
        hideKeyboard();
        //super.onBackPressed();
    }

现在你可以为所欲为。

于 2013-07-15T10:16:20.090 回答