나는 몇 가지 문제를 가지고 ListView
(이 시각적 문제의 더)는 ListView
의 행에서 같은 TextViews
에서 텍스트 값과 같은 데이터를 기억하지만, 엉킴 또는 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
의 배경이 바뀌고 버그 또는 ListView
의 논리를 찾지 못하는 것 같습니다.
따라서 행을 팽창시키기 전에 매번 setViewValue(..)
메서드가 호출됩니까? 스크롤을 위아래로 움직여도 더 이상 보이지 않는 행이 다시 표시 될 수 있습니까? 또는 setViewValue(..)
메서드는 초기 행을 팽창시키는 프로세스에 대해서만 호출되고 생성 된 객체는 ListView
의 메모리에 저장됩니다.
P. 같은 TextView
의 텍스트 값이 올바르게 표시됩니다. 같은 setViewValue(..)
메서드에서 같은 논리를 사용했습니다. ViewBinder는, 그것의와 setViewValue 방법은 목록보기의 열을 재활용하는 것이