2012-06-04 3 views
4

J'ai une barre d'action avec un widget de recherche dans mon application ICS. Je veux que l'utilisateur peut rechercher certaines choses qui viennent avec l'application. Par conséquent, je veux utiliser le widget de recherche, affichant une liste de résultats qui se met à jour lorsque l'utilisateur tape un nouveau caractère (même fonctionnalité que le Play Store). J'ai implémenté SearchView.OnQueryTextListener dans mon activité et implémente les deux méthodes onQueryTextChange(String newText) et onQueryTextSubmit(String query). Dans onQueryTextChange j'appelle mon service, qui renvoie les valeurs pour la suggestion tapée. Mais je n'ai aucun plan, comment afficher une liste de suggestions. J'ai lu les articles sur developer.android.com, mais autant que je comprenne c'est principalement pour l'ancienne exécution de recherche (< Honeycomb). Dans les exemples d'API de Search Widget, les suggestions sont des applications installées sur le système et desservies par SearchManager. Je n'ai pas trouvé un tutoriel ou un exemple qui couvre ce sujet (suggestions personnalisées dans le widget de recherche), quelqu'un sait quelque chose comme ça?Suggestions personnalisées dans le widget de recherche (Android ICS)

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.search_menu, menu); 



     SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 

     SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();  


     searchView.setOnQueryTextListener(this); 
     return super.onCreateOptionsMenu(menu); 
    } 

@Override 
    public boolean onQueryTextChange(String newText) { 
     Log.i(TAG, "Query = " + newText); 

     if(newText.length() > 0){ 
      //my suggestion service, returning an arraylist! 
     } 

     return false; 
    } 

je lis, que je besoin d'un ContentProvider étendent à partir de SearchRecentSuggestionsProvider, mais je ne sais pas comment je manipuler et créer ce fournisseur. J'ai un searchable.xml qui fait référence à searchSuggestAuthority à mon fournisseur de contenu vide. Dans le AnroidManifest, j'ai ajouté une intention de recherche à MainActivity, ajouté les méta-données et ajouté mon fournisseur. Mais je ne sais pas comment transmettre mes valeurs au fournisseur de contenu et les afficher comme suggestions.

public class SuggentionsProvider extends SearchRecentSuggestionsProvider { 
    public final static String AUTHORITY = "com.sap.hui.helper.SuggentionsProvider"; 
    public final static int MODE = DATABASE_MODE_QUERIES; 

    public SuggentionsProvider(){ 
     setupSuggestions(AUTHORITY, MODE); 
    } 
} 

BR,

mybecks

+0

avez-vous trouver la solution? si oui, s'il vous plaît partagez-moi –

Répondre

Questions connexes