2014-09-06 71 views
0

我得到这个方法setListView(),我用它来填充从SQLite数据库数据的ListView秀才:的ListView动态定制

public void setListView(){ 
    String[] columns= {DbHelper.C_ID, DbHelper.col1, DbHelper.col2, DbHelper.col3, DbHelper.col4,DbHelper.col5}; 
    Cursor cursor = db.query(DbHelper.TABLE_NAME, columns, null, null, null, null, "_id DESC"); 


    String[] from= { DbHelper.col1, DbHelper.col2, DbHelper.col3, DbHelper.col4, DbHelper.col5}; 
    int[] to = {R.id.tvCol1, R.id.tvCol2, R.id.tvCol3, R.id.tvCol4, R.id.tvCol5}; 


    SimpleCursorAdapter adapter = new SimpleCursorAdapter (getApplicationContext(), R.layout.list_row, cursor, from, to); 

    lv.setAdapter(adapter); 

} 

有一个TextView R.id.tvCol5这是列表行的一部分( R.layout.list_row)。我想根据在SQLite数据库列DbHelper.col5中输入的内容动态更改R.id.tvCol5(setText,设置背景颜色等)的属性。 例如,如果对于特定行的DbHelper.col5中的条目是字符串“RED”,我想让该特定行中的textView R.id.tvCol5具有红色背景并将文本设置为“红色”。

是否有可能做到这一点,或者是否有其他方式来实现相同的效果?

谢谢大家。最好的祝福。

回答

0

您需要在适配器中执行此操作,换句话说,您将不得不制作一个自定义适配器来扩展cursoradapter或baseadapter或类似的东西。

然后,您可以简单地检查字符串的值,并根据该值对其返回的视图执行一些操作(即将背景设置为红色)。