如何解决查询为空时如何从SearchViewAndroid中关闭键盘?
每当用户按下键盘上的回车键时,我都希望从SearchView中取消键盘。
country_search.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String?): Boolean {
country_search.clearFocus()
return true
}
仅当将某些内容放入SearchView并按下键盘的Enter键时,才会调用此代码(onQueryTextSubmit)。如果SearchView为空,则不起作用。
当查询为空并且用户按下键盘的Enter键时,如何关闭键盘?
解决方法
添加具有回拨到 onSearch
的监听器country_search.setOnEditorActionListener { view: TextView,i: Int?,keyEvent: KeyEvent? -> onSearch(view,i,keyEvent) }
然后在 onSearch 中根据需要添加以下行
(context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager).hideSoftInputFromWindow(text.windowToken,0)
,
以下代码有效:
在我的活动中,我有一个成员变量
private SearchView mSearchView;
在onCreateOptionsMenu()中,我设置了一个变量:
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.library,menu);
mSearchView = (SearchView)menu.findItem(R.id.miSearch).getActionView();
mSearchView.setOnQueryTextListener(this);
return true;
}
最后在QueryTextListener中,我做到了:
mSearchView.setQuery("",false);
mSearchView.setIconified(true);
我不得不查看SearchView的源代码,如果您不将查询文本重置为空字符串,则SearchView会这样做,并且不会删除键盘。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。