ListView с проблемой заголовка раздела - PullRequest
2 голосов
/ 06 сентября 2010

Привет! Я добавляю заголовки разделов для моего 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 был вызван при прокрутке? Есть предложения по этому поводу? Спасибо!

Ответы [ 3 ]

3 голосов
/ 13 июня 2011

Вы также можете взглянуть на очень простой проект здесь: http://code.google.com/p/android-section-list/. Вдохновение пришло из списка разделов iOS (выходит из коробки в iOS).

2 голосов
/ 29 марта 2011

См. Виджет ListView с заголовком раздела здесь, это может вам помочь. Он работает аналогично приложению контактов по умолчанию.

http://code.google.com/p/android-amazing-listview/

0 голосов
/ 06 сентября 2010

Так как же я могу исправить заголовки разделов после создания заголовков?

Правильно ли работает isHeaderVisible(), наверное.Насколько я могу судить, именно в этом ваша проблема.

Почему setViewBinder вызывается при прокрутке?

Поскольку строки перезаписываются при прокрутке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...