2014-02-17 32 views
0

我目前使用從SQLite數據庫填充的列表視圖。來自多個db行的列表視圖數據

public Set<String> getData() { 
    Set<String> set = new HashSet<String>(); 

    String selectQuery = "select * from " + TABLE; 

    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor = db.rawQuery(selectQuery, null); 

    if (cursor.moveToFirst()) { 
     do { 
      set.add(cursor.getString(1)); 
     } while (cursor.moveToNext()); 
    } 

    cursor.close(); 
    db.close(); 

    return set; 
} 

然後列表視圖中填充

private void populateListView() { 

    lv = (ListView) findViewById(R.id.listViewSetLocks); 

    DatabaseHandler db = new DatabaseHandler(getApplicationContext()); 
    Set<String> set = db.getData(); 

    List<String> list = new ArrayList<String>(set); 

    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
      this, android.R.layout.simple_list_item_1, list); 

    lv.setAdapter(arrayAdapter); 
    registerForContextMenu(lv); 

} 

這一切完美。我決定改變佈局一點,並使用2行列表視圖,所以我需要訪問數據庫的不同行中的數據。

什麼是我最好的方式來實現這一目標?

感謝

回答

0

爲此,您需要創建一個custom listview。自定義列表視圖允許您使用多個視圖/文本瀏覽來擴展自定義列表項目佈局。

對於數據庫所以只需要兩個查詢以下面的方式來獲取不同的列值:

String selectQueryCombined = "select "+ col1+","+col2+"from " + TABLE; 
Cursor cursor = db.rawQuery(selectQuery, null); 

//To Retrieve value : 

String val=c.getString(c.getColumnIndex(Col1)); 
String val1=c.getString(c.getColumnIndex(Col)); 

現在只需在您的自定義列表視圖項的textviews設置這些值。

希望這有助於!

相關問題