2016-04-06 7 views
1

Ich implementiere eine Suchansicht für meine App. Hier ist, wie ich meine searchview:Android SearchView: Vorschläge in einer benutzerdefinierten Ansicht anzeigen, nicht in der Listenansicht

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.options_menu, menu); 
    this.menu = menu; 

    // Associate searchable configuration with the SearchView 
    SearchManager searchManager = 
      (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
    MenuItem searchItem = menu.findItem(R.id.search); 
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem); 
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 
    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
     @Override 
     public boolean onQueryTextSubmit(String query) { 
      return false; 
     } 

     @Override 
     public boolean onQueryTextChange(String query) { 
      loadHistory(query); 
      return true; 
     } 
    }); 


    return true; 

} 

Ich möchte Suchvorschläge für Benutzer zeigen, wenn Benutzer beginnt zu tippen. Ich kann dies tun, um eine Listenansicht mit:

private void loadHistory(String query) { 

    // query db etc... 

    SearchManager manager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
    final SearchView search = (SearchView) menu.findItem(R.id.search).getActionView(); 
    search.setSuggestionsAdapter(new ExampleAdapter(this, cursor, items)); 
} 

Aber angenommen, ich mag keine Suchvorschläge als Listenansicht zeigen, und sie in einer benutzerdefinierten Ansicht zeigen, wo ich andere dann mehr Material zu meinem Layout hinzufügen kann nur Suchvorschläge. Zum Beispiel möchte ich die folgende benutzerdefinierte Ansicht anstelle der vorgeschlagenen Suche Listenansicht zeigen:

enter image description here

Wie kann ich das tun? Es gibt eine Funktion zum Setzen von Vorschlägen Adapter, setSuggestionsAdapter(adapter), aber ich konnte eine Funktion wie setCustomSuggestionsView(view) nicht finden.

Danke.

Antwort

0

Ich denke, was Sie brauchen, ist eine Recycler-Ansicht für Ihre Ergebnisse. Bitte beachten Sie diese answer für weitere Informationen. Eine Recycler-Ansicht gibt Ihnen alle Freiheitsgrade. Um mehr Viewtypen zu verwenden, siehe this Post. Hoffe das hilft. Ich bin nicht familiär genug mit Ihrem Fall aus Ihrer Beschreibung.

+0

Es ist nicht das selbe, der Fragesteller benötigt suggestionAdapter für searchView nicht RecyclerView bearbeitet von searchView. – adnbsr