2016-05-19 15 views
0

よろしくお願いします。SearchViewの提案に関するさらに詳しい情報

私のアプリでは、このsearchView提案機能を実装しています。私は私が望んでいたとして、各行に表示されるのに十分な情報を得ることができない。しかし:

enter image description here

あなたが見ることができるように、私はそこに初期と性別を持っているが、私は、など年齢やIDなどの詳細情報が欲しいです。

情報はアプリ内のSQLiteデータベースに格納されている、と私は以下のコードを介してこれらの情報を引っ張っています:事前に

public MyDBHandler(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { 
    super(context, DATABASE_NAME, factory, DATABASE_VERSION); 

    // This HashMap is used to map table fields to Custom Suggestion fields 
    mAliasMap = new HashMap<String, String>(); 

    // Unique id for the each Suggestions (Mandatory) 
    mAliasMap.put("_ID", COLUMN_ID + " as " + "_id"); 

    // Text for Suggestions (Mandatory) 
    mAliasMap.put(SearchManager.SUGGEST_COLUMN_TEXT_1, COLUMN_INITIAL + " as " + SearchManager.SUGGEST_COLUMN_TEXT_1); 

    mAliasMap.put(SearchManager.SUGGEST_COLUMN_TEXT_2, COLUMN_GENDER + " as " + SearchManager.SUGGEST_COLUMN_TEXT_2); 

} 

/** Returns patients for suggestions */ 
public Cursor getPatients(String[] selectionArgs){ 

    String selection = COLUMN_INITIAL + " like ? "; 

    if(selectionArgs!=null){ 
     selectionArgs[0] = "%"+selectionArgs[0] + "%"; 
    } 

    SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder(); 
    queryBuilder.setProjectionMap(mAliasMap); 

    queryBuilder.setTables(TABLE_PATIENTS); 

    Cursor c = queryBuilder.query(getReadableDatabase(), 
      new String[] { "_ID", 
        SearchManager.SUGGEST_COLUMN_TEXT_1, 
        SearchManager.SUGGEST_COLUMN_TEXT_2 } , 
      selection, 
      selectionArgs, 
      null, 
      null, 
      COLUMN_INITIAL + " asc ","10" 
    ); 
    return c; 
} 

ありがとう!

答えて

0
  1. レイアウト

    は、提案の各行を表すrowLayout.xml作成(名前、性別、年齢、詳細はあなたのケース4のTextViewにします。)は、Java

List<HashMap<String,String>> aList = new ArrayList<HashMap<String,String>>();

for (int i=0;i<totalNoOfSuggestion;i++) { 
      HashMap<String, String> hm = new HashMap<String, String>(); 
      hm.put("name",name); 
      hm.put("gender", gender); 
      hm.put("age", age); 
      hm.put("moreInfo", moreInfo); 
      aList.add(hm); 
     } 

String[] from = { "name","gender","age","moreInfo"}; 

    int[] to = { R.id.name,R.id.gender,R.id.age,R.id.moreInfo}; 
      SimpleAdapter simpleAdapter = new SimpleAdapter(getBaseContext(),aList,R.layout.rowLayout,from,to); 

autoComplete.setAdapter(simpleAdapter); 

ここでは、文字列のリストを作成し、それらにIDを渡します。

文字列のハッシュマップを作成してから、リストに追加しました。

次に、ハッシュマップで使用したすべてのIDを含むString[] fromを作成しました。

次に、を作成しました。これは、すべてのidのtextviewをrowLayout.xmlに入れました。その最初の引数Context第二の一つであるList第三の一つであるLayout 1/4 **はListに使用されるIDのの配列であり、第五の一つは、XMLで使用** IDは、次いでSimpleAdapter

次に、setAdapterautoComplete Textviewに設定します。

ご理解いただきたいと思います。

関連する問題