3
我正在自定義快速搜索以顯示來自我的應用的數據。它的工作正常。現在的問題是,當我點擊搜索按鈕時,我無法看到搜索歷史記錄。我應該怎麼做才能獲得搜索歷史記錄(以前搜索過的關鍵字)?安卓搜索歷史記錄快速搜索
這是非常迫切的,任何人都可以幫助我如何得到這個?
我正在自定義快速搜索以顯示來自我的應用的數據。它的工作正常。現在的問題是,當我點擊搜索按鈕時,我無法看到搜索歷史記錄。我應該怎麼做才能獲得搜索歷史記錄(以前搜索過的關鍵字)?安卓搜索歷史記錄快速搜索
這是非常迫切的,任何人都可以幫助我如何得到這個?
如果你經歷上developer.android.com教程,我想你會發現你在找什麼:
http://developer.android.com/guide/topics/search/adding-recent-query-suggestions.html
關鍵是要實現延伸SearchRecentSuggestionsProvider ContentProvider的。這是一個簡單的類:
public class MySuggestionProvider extends SearchRecentSuggestionsProvider {
public final static String AUTHORITY = "com.example.MySuggestionProvider";
public final static int MODE = DATABASE_MODE_QUERIES;
public MySuggestionProvider() {
setupSuggestions(AUTHORITY, MODE);
}
}
記住你的供應商添加到清單,因此它知道你的供應商的更新您的searchable.xml文件:
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_label"
android:hint="@string/search_hint"
android:searchSuggestAuthority="com.example.MySuggestionProvider"
android:searchSuggestSelection=" ?" >
</searchable>
你也將需要保存搜索您的搜索活動:
if (Intent.ACTION_SEARCH.equals(Intent .getAction())) {
String query = Intent .getStringExtra(SearchManager.QUERY);
SearchRecentSuggestions suggestions = new SearchRecentSuggestions(this,
MySuggestionProvider.AUTHORITY, MySuggestionProvider.MODE);
suggestions.saveRecentQuery(query, null);
}
嗨,謝謝你的回覆,我已經試過了,我得到的概率是,我的正常建議本身不工作。也就是說,現在使用快速搜索來搜索我的數據庫對我來說是完美的工作,只有當我點擊搜索按鈕時,最近的建議纔會出現。現在我有一個擴展ContentProvider的提供者。我是否需要更改相同的提供者,或者我應該使用擴展SearchRecentSuggestionsProvider的獨立提供者。非常感謝你的回覆。 – Padma 2010-11-26 06:38:24