Android 在当前片段中读取搜索查询而不启动活动
我正在构建一个应用程序,其中包含一个符号Android 在当前片段中读取搜索查询而不启动活动,android,searchview,Android,Searchview,我正在构建一个应用程序,其中包含一个符号活动,其中包含一个操作栏。该活动包含一个包含4个选项卡的选项卡主机,根据显示的选项卡和片段,每个选项卡都可以搜索其他内容 根据开发者指南(),当用户输入查询后按下搜索按钮时,活动将以搜索意图启动,我可以在其中阅读如下查询: if (Intent.ACTION_SEARCH.equals(intent.getAction())) { String query = intent.getStringExtra(SearchManager.QUE
活动
,其中包含一个操作栏
。该活动包含一个包含4个选项卡的选项卡主机,根据显示的选项卡和片段,每个选项卡都可以搜索其他内容
根据开发者指南(),当用户输入查询后按下搜索按钮时,活动将以搜索意图启动,我可以在其中阅读如下查询:
if (Intent.ACTION_SEARCH.equals(intent.getAction()))
{
String query = intent.getStringExtra(SearchManager.QUERY);
//use the query to search your data somehow
}
但是,我不想重新启动活动,然后决定哪个片段引发了查询,将选项卡设置为正确的选项卡,构建一个新片段等等。。。我想做的只是在用户输入的片段中读取查询本身(我注意到SearchView
类得到了一个getQuery
方法)
我如何实现一个侦听器,在用户写完查询并按下虚拟键盘中的搜索按钮后读取查询,而不重新创建活动?我只想获得对搜索框的引用,并像使用文本视图一样使用它,阅读它的文本并使用它。我最终做的是实现
onquerytextlister
。此侦听器有两种方法:onQueryTextChange
,在以文本作为参数的每个按键上调用;以及onquerytexsubmit
,当用户按下搜索按钮时调用。如果在onquerytexsubmit
中返回true
,则表示一切都已处理,无需启动意图 在询问之前阅读SearchView文档OnQueryTextListener只是一个让你监听输入文本的界面,它如何发送意图?你使用searchable配置还是其他什么?