【问题标题】:Close soft keyboard when search button is pressed in SherlockActivity [duplicate]在 SherlockActivity 中按下搜索按钮时关闭软键盘 [重复]
【发布时间】:2014-02-25 14:12:21
【问题描述】:

我有一个 MenuItem 搜索项。

按预期过滤列表视图结果。

但是当我按下软键盘上的搜索按钮(放大镜)时,键盘不会隐藏自己。

我应该怎么做才能在点击键盘上的搜索按钮时隐藏键盘

MenuInflater inflater = getSupportMenuInflater();
        inflater.inflate(R.menu.menu_search, menu);
        MenuItem searchItem = menu.findItem(R.id.menu_search);

        SearchView searchView = (SearchView) searchItem.getActionView();

        searchView.setSubmitButtonEnabled(true);
        searchView.setIconified(true);

  SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() 
        {
            @Override
            public boolean onQueryTextChange(String newText) 
            {
                // this is adapter that will be filtered
                if(companyListAdapter != null)
                {
                    companyListAdapter.getFilter().filter(newText);
                }

                return true;
            }

            @Override
            public boolean onQueryTextSubmit(String newText) 
            {

                // this is adapter that will be filtered
                if(companyListAdapter != null)
                {
                    companyListAdapter.getFilter().filter(newText);
                }

                return true;
            }
        };
        searchView.setOnQueryTextListener(queryTextListener);

请帮忙。

【问题讨论】:

    标签: android search actionbarsherlock menuitem


    【解决方案1】:

    这是隐藏和显示键盘的方法:

    /**
     * Hides the soft keyboard
     */
    public void hideSoftKeyboard() {
        if(getCurrentFocus()!=null) {
            InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
            inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
        }
    }
    
    /**
     * Shows the soft keyboard
     */
    public void showSoftKeyboard(View view) {
        InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
        view.requestFocus();
        inputMethodManager.showSoftInput(view, 0);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-27
      • 2023-03-10
      • 1970-01-01
      • 2015-08-06
      • 1970-01-01
      • 2019-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多