2010-12-09 3 views
1

Une activité est censée être en mesure de fournir des informations de contexte à un fournisseur de contenu comme celui-ci:Accès bundle appSearchData de ContentProvider

@Override 
public boolean onSearchRequested() { 
    Bundle appSearchData = new Bundle(); 
    appSearchData.putByte("category", category); 
    startSearch(null, false, appSearchData, false); 
    return true; 
} 

suggestions de recherche et les résultats du fournisseur devraient être limitées à « catégorie », mais je Impossible de trouver où accéder au package AppSearchData de mon fournisseur de contenu.

+0

double possible de [passer un paramètre à une recherche personnalisée Suggestion ContentProvider] (http: // stackoverflow. com/questions/7947016/passer-un-paramètre-à-un-custom-search-suggestion-contentprovider) – aleb

Répondre

0

Utilisez ce pour onSearchRequested:

@Override 
public boolean onSearchRequested() { 
    SearchManager searchManager = (SearchManager)getSystemService(Context.SEARCH_SERVICE); 

    if(searchManager!=null) 
    { 
     // start the search with the appropriate searchable activity 
     // so we get the correct search hint in the search dialog 
      Bundle b = new Bundle(); 
      b.putString("context", indicator); 
      searchManager.startSearch(null, false,new ComponentName(this, YourClass.class), b, false); 
    return true; 
} 
return false; 
} 

Et ceci est votre classe interrogeable:

Bundle b = intent.getBundleExtra(SearchManager.APP_DATA); 
+0

Où obtenez-vous l'intention pour le deuxième exemple de code? –

+0

@bitbox Désolé pour la réponse tardive, vous l'obtenez en appelant simplement la méthode "getIntent()": Intention d'intention = getIntent() dans le onCreate – Joris

+0

Merci, nous signalerons plus tard si cela a résolu mon problème –

Questions connexes