2010-11-18 8 views
3

Je suis en train de personnaliser la recherche rapide pour afficher les données de mon application. Cela fonctionne bien. Maintenant, le problème est, lorsque je clique sur le bouton de recherche, je ne suis pas en mesure de voir l'historique de recherche. Que dois-je faire pour obtenir l'historique de recherche (mots-clés précédemment recherchés)?historique de la recherche in android recherche rapide

Il est très urgent, quelqu'un peut-il m'aider comment obtenir cela?

Répondre

2

Si vous passez par le tutoriel sur developer.android.com, je pense que vous trouverez ce que vous cherchez:

http://developer.android.com/guide/topics/search/adding-recent-query-suggestions.html

L'astuce consiste à mettre en œuvre un ContentProvider qui s'étend SearchRecentSuggestionsProvider. Il est une classe simple:

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

N'oubliez pas d'ajouter votre fournisseur au manifeste, et mettre à jour votre fichier searchable.xml pour qu'il sache de votre fournisseur:

<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> 

Aussi, vous devrez sauver la recherche dans votre activité de recherche:

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

salut merci pour votre réponse, j'ai essayé cela, le problème que j'ai eu est, ma suggestion normale elle-même ne fonctionne pas. C'est-à-dire, en cherchant maintenant ma base de données using la recherche rapide fonctionne parfaitement pour moi, seulement les suggestions récentes ne viennent pas quand je clique sur le bouton de recherche. Maintenant, j'ai un fournisseur qui étend ContentProvider. Ai-je besoin de changer le même fournisseur ou je devrais utiliser le fournisseur séparé qui étend le SearchRecentSuggestionsProvider. Merci beaucoup pour votre réponse. – Padma

Questions connexes