使用此代码,我可以在google playstore应用中清除最近的查询:
SearchRecentSuggestions query = new SearchRecentSuggestions(this, "com.google.android.finsky.RecentSuggestionsProvider", 1);
query.clearHistory();
但是,我如何使用最近的查询? (例如:在TextView中显示第一个查询)
答案 0 :(得分:0)
默认情况下,查询将作为uri参数的最后一个段(Uri对象)附加。要在这种情况下检索查询文本,只需使用getLastPathSegment()。例如:
String query = uri.getLastPathSegment()。toLowerCase();
例如,以下是如何构建android:searchSuggestSelection属性以创建全文搜索语句:
`
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_label"
android:hint="@string/search_hint"
android:searchSuggestAuthority="com.example.MyCustomSuggestionProvider"
android:searchSuggestIntentAction="android.intent.action.VIEW"
android:searchSuggestSelection="word MATCH ?">
</searchable>
` 使用此配置,您的query()方法将选择参数作为“单词匹配?”提供。和selectionArgs参数作为搜索查询。当您将这些传递给SQLite query()方法时,作为它们各自的参数,它们被合成在一起(问号被查询文本替换)。如果您选择以这种方式接收建议查询并需要在查询文本中添加通配符,请将它们附加(和/或前缀)到selectionArgs参数,因为此值用引号括起并插入代替问号。
上面示例中的另一个新属性是android:searchSuggestIntentAction,它定义了当用户选择建议时随每个意图发送的意图操作。有关声明建议意图的部分将进一步讨论。