【问题标题】:How to close searchView in onOptionsItemSelected(MenuItem item) when onBackPressed don't work?当 onBackPressed 不起作用时,如何在 onOptionsItemSelected(MenuItem item) 中关闭 searchView?
【发布时间】:2018-04-27 21:23:31
【问题描述】:

当按下 BACK 时需要代码来关闭 searchView。到目前为止,只有在按下 BACK 时关闭键盘的代码。

@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 上看到了一些答案,但大多数都与 onBackPressed() 或添加 searchView.collapseActionView() 有关。 但是我无法在onOptionsItemSelected(MenuItem item) 中添加searchView,除非我用SearchView searchView = (SearchView) item.getActionView(); 重新声明它,然后添加searchView.collapseActionView(),但是当按下BACK 时应用程序崩溃。

我让键盘关闭,但如何关闭 onOptionsItemSelected(MenuItem item) 中的 searchView?

编辑:

当我使用onBackPressed()super.onBackPressed()this.onBackPressed()时,我第一次点击“返回”按钮,searchView和键盘关闭,但是当我再次点击搜索图标打开searchView和键盘弹出,如果我再次单击“返回”,整个应用程序将关闭,而不是崩溃,只是关闭并将我带到 Android 手机主屏幕。为什么会这样?

【问题讨论】:

    标签: android android-actionbar searchview android-search


    【解决方案1】:

    更新

     @Override
        public void onBackPressed() {
            if (!yourSearhView.isIconified()) {
                yourSearhView.onActionViewCollapsed();
            } else {
                super.onBackPressed();
            }
        }
    

    如果您设置了 app:showAsAction="always"

    ,这将不起作用

    【讨论】:

    • 这段代码对我不起作用,我在stackOverflow上看到过。
    • 你知道我可以在 onOptionsItemSelected 中放置不需要我使用“searchView”的代码。就像键盘隐藏代码一样,我不必输入“searchView”。
    猜你喜欢
    • 1970-01-01
    • 2014-08-20
    • 2015-11-04
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多