如果列"status"==0
,我想显示灰色星形图像,如果列"status"==1
,则显示金色星形。我的代码可以将记录显示到listview
,但不首先检查“状态”列:
public void loadPertanyaan(){
Cursor soal = DBAdapter.fetchSemuaSoal();
String[] from = new String[]{DBAdapter.KEY_SOAL_PERTANYAAN};
int[] to = new int[]{R.id.txt_PilihSoal_Pertanyaan};
SimpleCursorAdapter dataAdapter = new SimpleCursorAdapter(this, R.layout.list_row, soal, from, to);
setListAdapter(dataAdapter);
}
然后我添加代码,在status
之后使用moveToNext()
检查setListAdapter(dataAdapter)
列。但应用程序始终强制停止,代码检查下面的“已回答”列 -
ImageView img = (ImageView) findViewById(R.id.imgBintang);
while(soal.moveToNext()){
if(soal.getInt(soal.getColumnIndex("status"))==1)
img.setImageResource(R.drawable.bintang_mas);
else
img.setImageResource(R.drawable.bintang_abu);
}
如何在显示"status"
之前检查ListView
列。提前谢谢。
答案 0 :(得分:1)
Agi,你需要一个像链接Populating a ListView with a CursorAdapter这样的好教程。查看与前一个答案中提到的bindView
方法类似的代码getView
。 getView不那么密集,所以对你来说可能已经足够了。
查看LinearLayout资源XML。在其中,有2个TextView元素。相反,我认为你的ListView中需要更多的列,比如TextView,流行的Checkbox,以及星形图像(bintang)。
代码与您在设计中的想法不同。它以 虚拟模式获取并显示数据,您可以通过position
或Cursor
参数检查数据。