感谢 stackoverflow 用户的帮助,我设法根据某些条件更改了一个特定行的颜色。但是改变颜色并不完全符合我的需求和期望。
所以我开始浏览网页并试图改变它。我想在特定行的 TextView 中设置文本。为了能够更改行颜色,我被建议创建个性化的 SimpleCursorAdapter 类,因为我正在使用 Cursor 从 SQLite 将值输入 ListView。
在阅读和测试之后,这是我想出的:
public class MyCursorAdapter extends SimpleCursorAdapter {
public MyCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to) {
super(context, layout, c, from, to);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
super.bindView(view, context, cursor);
if(cursor.getLong(cursor.getColumnIndex(MyDBAdapter.KEY_PRICE)) == 5)
{
TextView price = (TextView)view.findViewById(R.id.priceInfo);
price.setText("High");
}
else
view.setBackgroundColor(0x00000000);
}
}
但是,我现在得到的是某些行上的重复文本(其中有规律性)。当我在某处读到时,每次滚动都在刷新 ListView,但是当我放入 if 子句(插入此 TextView)时,这行怎么可能:view.setBackgroundColor(SELECTED_COLOR);
一切正常,只有这一行已更改。
有人可以告诉我我必须做什么才能使它起作用,或者我的想法有什么问题吗?