1

Ich habe ein Array von String-Elemente:Cursorbevölkern nicht die Vorschläge der Suche

suggestion_name = new String[main_data.getJSONArray("cafe").length()]; 

, die von einigen JSON-Daten aufgefüllt wird:

 for (int i=0; i<suggestion_name.length;i++){ 

     suggestion_name[i] = main_data.getJSONArray("cafe").getJSONObject(i).getString("name"); 

     } 

Wenn ich debuggen, ich sehe, dass suggestion_name Array 2 Elemente darin, alles in Ordnung hier. Dann habe ich meine Vorschläge Adapter wie folgt erstellen:

public void set_suggestion_adapter_array(){ 
    String[] from = new String[] {"cafe_name"}; 
    int[] to = new int[] {R.id.suggestionTextView}; 
    cursorAdapter = new SimpleCursorAdapter(a, 
      R.layout.suggestions_single_item, 
      null, 
      from, 
      to, 
      CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); 
} 

und die Vorschlagsliste wie folgt füllen:

public void populate(String text){ 
    MatrixCursor matrixCursor = new MatrixCursor(new String[]{ BaseColumns._ID, "cafe_name" }); 
    for (int i=0; i<suggestion_name.length; i++) { 
     if (suggestion_name[i].toLowerCase().startsWith(text.toLowerCase())) 
      matrixCursor.addRow(new Object[] {i, suggestion_name[i]}); 
    } 
    cursorAdapter.changeCursor(matrixCursor); 
    cursorAdapter.notifyDataSetChanged(); 
} 

ich das Bestücken() -Methode in onQueryTextChange Aufruf:

searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
     @Override 
     public boolean onQueryTextSubmit(String query) { 
      // search database for query 
      getDataMap.search(query); 
      return true; 
     } 

     @Override 
     public boolean onQueryTextChange(String newText) { 
      // show suggestions 
      getDataMap.populate(newText); 

      return true; 
     } 
    }); 

Wenn ich jedoch anfange, die Elemente meines Vorschlagsfeldes in das Suchfeld einzugeben, bekomme ich keine Vorschläge. Ich debuggte mehrmals, um zu sehen, ob irgendeiner meiner Codes nicht rechtzeitig/überhaupt aufgerufen wird, aber alles funktioniert perfekt in der Reihenfolge. Meine Array-Elemente enthalten keine ungeraden Buchstaben, Symbole usw. Was fehlt mir hier? Vielen Dank.

Antwort

0

Snap! Ich habe vergessen, den Adapter einzustellen.

searchView.setSuggestionsAdapter(cursorAdapter); 

Rookie Fehler von mir. Wie auch immer, vielleicht findet jemand den Code und arbeitet nützlich.