1

J'ai un ensemble d'éléments cordes:CursorAdapter pas peuplant les suggestions de SearchView

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

qui est peuplée par certaines données JSON:

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

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

     } 

Quand je debug, je vois que suggestion_name tableau a 2 éléments dedans, tout va bien ici. Ensuite, je crée mon adaptateur de suggestions comme suit:

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); 
} 

et compléter la liste des suggestions comme ceci:

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(); 
} 

J'appelle la méthode Populate() dans onQueryTextChange:

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; 
     } 
    }); 

Pourtant, quand je commence à taper les éléments de mon tableau de suggestion dans le champ de recherche, je ne reçois aucune suggestion. J'ai débogué plusieurs fois pour voir si mon code n'est pas appelé à temps/du tout, mais tout fonctionne parfaitement dans l'ordre. Mes éléments de tableau ne contiennent aucune lettre, aucun symbole, etc. Qu'est-ce qui me manque ici? Merci.

Répondre

0

Snap! J'ai oublié de mettre l'adaptateur.

searchView.setSuggestionsAdapter(cursorAdapter); 

Rookie erreur par moi. Quoi qu'il en soit, peut-être que quelqu'un trouve le code et le travail utile.