2011-09-16 58 views
2

所以我使用SimpleCursorAdapter來將SQLite中的數據調整爲ListView。讓我們調用這個數據庫testData。 testData中的一個列記錄true或false,0或1。根據該行是0還是1,我可以使listview爲每個項目顯示不同的圖像嗎?Android SimpleCursorAdapter - 添加條件圖像

這是我正在使用的適配器。

ListAdapter adapter = new SimpleCursorAdapter(
this, 
android.R.layout.two_line_list_item, 
mCursor,            
new String[] {testData.DATE1, testData.NAME1},   
new int[] {android.R.id.text1, android.R.id.text2}); 

回答

4

我創建了一個定製的SimpleCursorAdapter:

public class MySimpleCursorAdapter extends SimpleCursorAdapter { 

    public MySimpleCursorAdapter(Context context, int layout, Cursor cur, 
      String[] from, int[] to) { 
     super(context, layout, cur, from, to); 
    } 

    @Override public void setViewImage(ImageView iv, String text) 
    { 
     if (text.equals("0")) { 
      iv.setImageResource(R.drawable.new1); 
     } 
     else { 
      iv.setImageResource(R.drawable.check1); 
     } 
    } 

} 

在我ListActivity我的文本字段綁定在數據庫中的圖像資源ID。在你的例子中它看起來像這樣:

ListAdapter adapter = new MySimpleCursorAdapter(
    this, 
    android.R.layout.two_line_list_item, 
    mCursor,            
    new String[] {testData.DATE1, testData.NAME1},   
    new int[] {android.R.id.text1, android.R.id.image1}); // Note: replace text2 with image1 

即,如果數據庫中的文本字段「Name1」包含「0」,則圖像「new1」將顯示在ListView中,如果它具有其他值,則會顯示「check1」。