2011-09-16 33 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”。