在使用SimpleCursorAdapter将记录显示到listview之前检查记录的内容

时间:2015-02-20 17:27:36

标签: android listview simplecursoradapter

如果列"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列。提前谢谢。

1 个答案:

答案 0 :(得分:1)

Agi,你需要一个像链接Populating a ListView with a CursorAdapter这样的好教程。查看与前一个答案中提到的bindView方法类似的代码getView。 getView不那么密集,所以对你来说可能已经足够了。

查看LinearLayout资源XML。在其中,有2个TextView元素。相反,我认为你的ListView中需要更多的列,比如TextView,流行的Checkbox,以及星形图像(bintang)。

代码与您在设计中的想法不同。它以 虚拟模式获取并显示数据,您可以通过positionCursor参数检查数据。

祝你好运,告诉我它是怎么回事......