Привет! Я добавляю заголовки разделов для моего listView, в Интернете есть несколько методов. Поскольку я использую simpleCursorAdapter для управления моим listView, я применил метод Фила Богля. http://thebogles.com/blog/2010/02/section-headers-for-android-listviews/
Ошибка произошла в этой части кода:
listAdapter.setViewBinder( new SimpleCursorAdapter.ViewBinder()
{
public boolean setViewValue(View view, Cursor cursor, int
columnIndex)
{
if (columnIndex == nDateIndex) {
if (isHeaderVisible(cursor)) {
view.setVisibility(View.VISIBLE);
prevDate = dateString;
((TextView) view).setText(dateString);
} else {
((TextView) view).setText("");
view.setVisibility(View.GONE);
}
return true;
}
return false;
}
});
Это LogCat показывает, как они сравниваются, пока я прокручиваю список:
09-06 11:06:43.460: INFO/System.out(563): Sun, 05 Sep 2010 11:41:53 (dateString)
09-06 11:06:43.460: INFO/System.out(563): Wed, 01 Sep 2010 21:58:06 (preDate)
09-06 11:06:43.460: INFO/System.out(563): 120.0 (record)
09-06 11:06:43.820: INFO/System.out(563): Sun, 05 Sep 2010 17:47:26 (dateString)
09-06 11:06:43.820: INFO/System.out(563): Sun, 05 Sep 2010 11:41:53 (preDate)
09-06 11:06:43.820: INFO/System.out(563): 112.0 (record)
Правильный вывод должен быть:
вс, 5 сентября 2010
112
120
Но когда я прокручиваю вверх, setViewValue сначала вызывает 120 и сравнивает с preDate (показать выше), он становится:
вс, 5 сентября 2010
112
Вс, 05 сен 2010
120
Так как я могу сделать заголовки разделов фиксированными после создания заголовков? Почему setViewBinder был вызван при прокрутке? Есть предложения по этому поводу? Спасибо!