1

の提案を移入ない:私はデバッグするとき、私はsuggestion_name配列を持っていることがわかりCursorAdapterは、私は文字列要素の配列を持っているSearchView

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

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

     } 

:いくつかのJSONデータが移入され

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

その中に2つの要素があります。

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

と、このような提案のリストを移入する:

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

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

を次のように私は私の提案のアダプタを作成しますしかし、私の提案配列の要素を検索フィールドに入力すると、私は何の示唆も得られません。私のコードが時間内に呼び出されていないかどうかを確認するために何度かデバッグしましたが、すべてが順調に動作します。私の配列要素には、奇数の文字や記号などは含まれていません。私はここで何が欠けていますか?ありがとう。

答えて

0

スナップ!私はアダプタを設定するのを忘れた。

searchView.setSuggestionsAdapter(cursorAdapter); 

私はルーキーミスです。とにかく、誰かがコードを見つけて、役に立つことがあるかもしれません。

関連する問題