我有一些问题与ListView
(它更像是一个视觉问题的),它会记住如TextViews
文本值数据,从ListView
的行,但缠结或忘记关于TextViews
背景颜色方面。 只有当ListView
包含许多行时,问题才会显示。我有一个SimpleCursorAdapter
和ViewBinder
工作,并希望如果发生状况,突出一个TextView
:ListView和记忆数据
在ViewBinder
实现:
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
CharSequence display;
if(view.getId() == R.id.dueDate){
long timestamp = Long.parseLong(cursor.getString(3));
display=DateUtils.getRelativeTimeSpanString(timestamp);
if(timestamp+DaysToMillis(5)> new Date().getTime())
((TextView) view).setBackgroundResource(R.color.marker_red);
((TextView) view).setText(display);
return true;
}
else
return false;
}
如此反复:当有许多行ListView
似乎纠结的背景颜色。有时候当我重新滚动时,它又改变了TextView
的背景,我似乎无法找到bug或ListView
的逻辑。
那么,是否每次膨胀排前都会调用setViewValue(..)
方法?即使您向上或向下滚动,并且不再可见的行再次可见?或者setViewValue(..)
方法只为初始行充气过程调用,然后创建的对象保存在ListView
的内存中?
P.S.正确显示来自相同TextView
的文本值。我在同一个setViewValue(..)
方法中使用了相同的逻辑。