如何在搜索中自动进入编辑模式?

时间:2016-01-27 17:37:15

标签: android

我在操作栏中实现了经典搜索功能,但是当我点击搜索菜单按钮时,会出现搜索editText,但我必须点击它进入编辑模式,而大多数应用程序直接输入显示editText后编辑模式。

如何解决?

我的代码只是:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    // Place an action bar item for searching.
    MenuItem item = menu.add("Search");
    item.setIcon(android.R.drawable.ic_menu_search);
    item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM
            | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
    mSearchView = new Fragment_siteManager.MySearchView(getActivity());
    mSearchView.setOnQueryTextListener(this);
    mSearchView.setOnCloseListener(this);
    mSearchView.setIconifiedByDefault(true);
    mSearchView.setQueryHint(getString(R.string.label_tvGivePosition));
    item.setActionView(mSearchView);

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    return super.onOptionsItemSelected(item);
}

修改

我尝试了以下代码,但它不起作用:

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    View view = mSearchView.findFocus();

    InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.showSoftInput(view, InputMethodManager.SHOW_FORCED);
    return super.onOptionsItemSelected(item);
}

此致

1 个答案:

答案 0 :(得分:1)

根据Android文档,SearchView具有Edittext行为,因此您不需要强制使用该软键。看来你的问题是它在onOptionItemSelected()中,它应该在onCreateOptionMenu()中。如果你必须,强制的代码低于。仔细看看这篇文章底部的链接。

  1. 获取InputMethodManager
  2. 调用方法以显示软键,并将搜索视图和标志传递给SHOW_FORCED
  3. 完成!

    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.showSoftInput(mSearchView, InputMethodManager.SHOW_FORCED);
    
  4. 查看class以获取更多信息。另请查看SearchView上的Android Docs