如何更改android SearchView文本


Answers:


164

在进行尝试之后,我发现API中有一个名为setQuery()的方法,您可以设置searchView文本,并且可以选择提交搜索,也可以不使用boolean参数。

searchView.setQuery(searchToken, false);

3
即使将boolean参数设置为false后,它仍然会再次查询。任何建议都会有所帮助。
拉吉·特里维迪

我已经做到了,但是将第二个参数设置为,true以便查询也可以执行,但是请注意,尽管查询可以很好地执行,但文本框保持空白,直到手动指定焦点为止。我如何确保自动设置的值也能自动显示?
nemesisfixx

1
没关系。第二个论点是“提交”
roghayeh hosseini

33

您可以使用setQuery()更改文本框中的文本。

但是,setQuery()方法触发搜索视图的焦点状态,因此调用此方法后,键盘将显示在屏幕上。

若要解决此问题,只需调用searchView.clearFocus()after setQuery()方法将其取消焦点,键盘将不会显示在屏幕上。

例:

String suggestWord = intent.getDataString();
searchView.setQuery(suggestWord, false);
searchView.clearFocus();

由于写入searchView.setIconified(false);而未显示 表演 。
lolo_house

7

如果您想预先填写SearchView一些文本searchView.setQuery(text, false),则无法立即使用。原因是什么时候SearchView扩大

searchView.onActionViewExpanded()

会被调用,以调用searchView.setText("")并清除我们设置的所有文本。

解决办法是设置一个展开监听器,并设置预-FIL文本一旦SearchView扩大

override fun onCreateOptionsMenu(menu: Menu): Boolean {
    menuInflater.inflate(R.menu.main, menu)
    val searchView = menu.findItem(R.id.action_search).actionView as SearchView
    menu.findItem(R.id.action_search).setOnActionExpandListener(object : MenuItem.OnActionExpandListener {
        override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
            // it is important to call this before we set our own query text.
            searchView.onActionViewExpanded()
            searchView.setQuery("Prefil Text", false)
            return true
        }

        override fun onMenuItemActionCollapse(item: MenuItem?) = true
    })
    return true
}

6

这对我有用

    MenuItem sItem = menu.findItem(R.id.search);
    SearchView searchView = (SearchView) sItem.getActionView();

    sItem.expandActionView();
    searchView.setQuery("your text", false);

1
简单,快速的救生解决方案!
eren130

0

如果希望searchView展开,并且可以在用户点击x(关闭)后将其收缩回一个图标,则方法是:

searchView.isIconified = false // Expand it
searchView.setQuery("your text here", false) // true if you want to submit, otherwise false
searchView.clearFocus() // so the keyboard is not show up.

注意:如果使用以下方法展开它:

searchView.onActionViewExpanded()

用户点按x(关闭)后,searchView不会缩回

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.