2010-11-18 12 views
3

に私は私のアプリからのデータを表示するには、クイック検索をカスタマイズしています。そのうまく動作します。今問題は、私が検索ボタンをクリックすると、私は検索履歴を見ることができません。検索履歴(以前に検索したキーワード)を取得するにはどうすればよいですか?検索履歴アンドロイドクイック検索

それは誰もがこれを取得する方法を私を助けることができる、非常に緊急ですか?あなたはdeveloper.android.comのチュートリアルを通過する場合

答えて

2

、私はあなたが探しているものを見つけるだろうと思う:

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); 
} 
+0

お返事ありがとうございました。私はこれを試してみました。私は普通の提案自体は機能していません。つまり、クイック検索を使用してデータベースを検索すると、完全に機能しています。検索ボタンをクリックすると最近の提案は表示されません。今私はContentProviderを拡張するプロバイダを持っています。私は、同じプロバイダを変更する必要はありますか私はSearchRecentSuggestionsProviderを拡張別々のプロバイダを使用する必要があります。 URの返事にとても感謝しています。 – Padma

関連する問題