【发布时间】:2013-01-03 19:22:10
【问题描述】:
是否有用于 SearchView 的 setText() 方法或类似的方法? 我尝试像这样在 searchView 中设置搜索文本,但没有这样的方法。
searchView.setText(searchToken);
【问题讨论】:
标签: android searchview
是否有用于 SearchView 的 setText() 方法或类似的方法? 我尝试像这样在 searchView 中设置搜索文本,但没有这样的方法。
searchView.setText(searchToken);
【问题讨论】:
标签: android searchview
经过思考和尝试,我发现 API 中有一个名为 setQuery() 的方法,您可以设置 searchView 文本,您可以选择提交搜索或不使用布尔参数。
searchView.setQuery(searchToken, false);
【讨论】:
true 这样查询也会被执行,但请注意,虽然查询执行得很好,但文本框保持空白,直到手动执行给予重点。我如何确保自动设置的值也自动显示?
您可以使用setQuery()更改文本框中的文字。
但是,setQuery() 方法会触发搜索视图的焦点状态,因此在调用此方法后屏幕上会显示一个键盘。
要解决这个问题,只需在setQuery()方法之后调用searchView.clearFocus()使其失去焦点,键盘将不会显示在屏幕上。
示例:
String suggestWord = intent.getDataString();
searchView.setQuery(suggestWord, false);
searchView.clearFocus();
【讨论】:
如果您想在您的 SearchView 中预先填写一些文字 searchView.setQuery(text, false) 将无法开箱即用。原因是当SearchView 扩展时
searchView.onActionViewExpanded()
调用 searchView.setText("") 并清除我们设置的所有文本。
解决方案是设置一个 Expand 侦听器,并在 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
}
【讨论】:
这对我有用
MenuItem sItem = menu.findItem(R.id.search);
SearchView searchView = (SearchView) sItem.getActionView();
sItem.expandActionView();
searchView.setQuery("your text", false);
【讨论】:
appcompat:showAsAction="always"
如果你想让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 不会收缩
【讨论】: