在我的应用程序中,我从 SQlite 数据库中提取 3 个字符串来填充 ListView。在列表行中,我必须使用 TextViews 和 ImageView。
当前正确填充了两个 TextView(每行中的文本不同)。但是,我使用 ViewBinder 设置的 ImageView 并非如此。即,每一行中的图像都得到相同的颜色。我怎样才能解决这个问题?我需要扩展 SimpleCursorAdapter 吗?
String[] from = {DbHelper.NAME, DbHelper.COMMENT, DbHelper.COLOR};
String[] column = {DbHelper.C_ID, DbHelper.NAME, DbHelper.COMMENT, DbHelper.COLOR};
int[] to = {R.id.listitem_title, R.id.listitem_summary, R.id.listitem_color};
Cursor cursor = db.query(DbHelper.TABLE_NAME, column, null, null, null, null, null);
this.adapter = new SimpleCursorAdapter(getActivity(), R.layout.list_item_set, cursor, from, to);
adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
if (view.getId() == R.id.listitem_color) {
cursor.moveToFirst();
String color = "#ffffff";
while (cursor.moveToNext()) {
color = cursor.getString(cursor.getColumnIndex(DbHelper.COLOR));
}
((ImageView) view).setBackgroundColor(Color.parseColor(color));
return true;
}
return false;
}
});
setListAdapter(adapter);