2010-12-09 7 views
1

Eine Aktivität sollte in der Lage sein, Kontextinformationen zu einem Content-Provider wie folgt zu liefern:Zugriff appSearchData Bündel von Content

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

Suchvorschläge und Ergebnisse vom Anbieter sollten auf ‚Kategorie‘ begrenzt werden, aber ich Ich kann nicht herausfinden, wo ich von meinem ContentProvider aus auf das appSearchData-Paket zugreifen kann.

+0

möglich Duplikat [übergeben Sie einen Parameter auf eine Custom Search Suggestion Contentprovider] (http: // Stackoverflow. com/questions/7947016/pass-a-parameter-zu-einem-benutzerdefinierte-suche-vorschlag-contentprovider) – aleb

Antwort

0

verwendet für 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; 
} 

Und das ist Ihre durchsuchbare Klasse:

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

Wo erhalten Sie die Absicht für das zweite Codebeispiel? –

+0

@bitbox Sorry für späte Antwort, erhalten Sie es durch einfaches Aufrufen der "getIntent()" -Methode: Absicht intent = getIntent() in der onCreate – Joris

+0

Danke, wird später berichten, wenn das mein Problem gelöst –