Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用自定义列表视图(如谷歌搜索应用程序)搜索建议_Android_Android Custom View_Searchview - Fatal编程技术网

Android 使用自定义列表视图(如谷歌搜索应用程序)搜索建议

Android 使用自定义列表视图(如谷歌搜索应用程序)搜索建议,android,android-custom-view,searchview,Android,Android Custom View,Searchview,我希望我最近的搜索建议[使用操作栏Sherlock SearchView]显示在自定义列表视图中。默认设置在左侧有一个计时器/时钟图标,在右侧有最近的查询(文本) 我想做一些类似谷歌搜索应用的事情 单击右侧的箭头时,只有搜索字段填充查询,并且不执行搜索操作。单击listview中的项目(文本)时,将调用搜索意图 我已经实现了搜索和建议,只想为建议创建一个自定义列表视图 有人能帮我吗 谢谢大家! 您必须制作一个自定义列表适配器 看看怎么做。 然后,在适配器中,您将有一个onClick()监听器用

我希望我最近的搜索建议[使用操作栏Sherlock SearchView]显示在自定义列表视图中。默认设置在左侧有一个计时器/时钟图标,在右侧有最近的查询(文本)

我想做一些类似谷歌搜索应用的事情

单击右侧的箭头时,只有搜索字段填充查询,并且不执行搜索操作。单击listview中的项目(文本)时,将调用搜索意图

我已经实现了搜索和建议,只想为建议创建一个自定义列表视图

有人能帮我吗


谢谢大家!

您必须制作一个自定义列表适配器

看看怎么做。

然后,在适配器中,您将有一个onClick()监听器用于“右箭头”。在侦听器中,我会触发一个事件,通知活动

这是一个非常好的事件消息库。


然后,您的活动将收到包含有关单击项目的数据的消息。使用这些数据填充您的搜索字段。

可能会帮助某些人,这正是问题的目的。

其主要思想是查询SearchRecentSuggestionsProvider并填充列表。我们可以这样做

ContentResolver contentResolver = getApplicationContext().getContentResolver();

String contentUri = "content://" + MySuggestionProvider.AUTHORITY + '/' + SearchManager.SUGGEST_URI_PATH_QUERY;
Uri uri = Uri.parse(uriStr);

Cursor cursor = contentResolver.query(uri, null, null, new String[] { query }, null);

我知道现在已经很晚了,但我现在发布这篇文章是为了在将来帮助别人。实际上,只需一行就可以启用建议右侧的箭头。 这叫做查询优化。启用查询优化将显示箭头,单击箭头将重写查询文本,然后您可以编辑并稍后提交。下面是我的项目中的一个例子

searchView.apply {
            setSearchableInfo(searchManager.getSearchableInfo(componentName))
            isQueryRefinementEnabled = true
        }

这里最重要的部分是isQueryRefinementEnabled=true

Hey@Kent,谢谢你的回答。但是如何链接建议提供程序和自定义列表视图?如果您试图基于自定义数据集(例如数据库中的某个列表)创建该列表,则必须将该数据传递到自定义列表构造函数中。然后使用TextWatcher过滤数据如果您只是想让它完成用户可能键入的任何内容,那么我将使用AutoCompleteTextViewHello@Kent,我使用的是SearchRecentSuggestionsProvider。有没有一种简单的方法来定制布局?数据位于内容提供程序中。另外,我使用的是ABS 4.3 SearchView。很抱歉,我无法理解AutoCompleteTextView如何在这里工作。你能详细说明一下吗?我从来没有真正使用过SearchRecentSuggestionsProvider。但在我看来,从谷歌的几次搜索中,你可以用这个:我读了“动作键”部分。看起来这就是你想要做的。嗨@droidster,我正在处理类似的问题。你知道如何定制listview以获得建议吗?没有@SherCoder无法找到解决方案。建议显示为正常列表。没有填充搜索字段的箭头,选择项目将启动搜索。