2014-11-13 2 views
-1

У меня есть класс, который расширяет BaseAdaptor и переопределяет getItemViewType (int position). Когда я меняю курсор или уведомляю об изменении набора данных, значение, передаваемое для позиции, всегда равно 0. Однако, если я помещаю точку отладки в getItemViewType и вызываю getCount, возвращаемое значение равно 4. Аналогично, вызов getItem (0), getItem (1), getItem (2) и getItem (3) из одной и той же точки отладки все возвращают действительные результаты.getItemViewType position always 0

Любые идеи, почему позиция не выполняет итерацию [0,1,2,3]?

+0

он не будет вызывать getViewType() несколько раз, если ваш getViewTypeCount равен 1. Цель getViewType() заключается в том, что у вас разные макеты в ваших адаптерах. – NameSpace

ответ

1

Возможно, потому что getTypeCount возвращает «1» - так что нет необходимости на самом деле перебирать «позицию» - Android предполагает, что все типы просмотров одинаковы.

Вы, вероятно, следует переопределить этот метод:

public int getViewTypeCount() { 
    return 1; 
} 

Но первый, убедитесь, что вы знаете, что он делает. Это полезно, только если у вас есть разные типы данных, не разные значения. Смотрите этот пост:

getViewTypeCount and getItemViewType methods of ArrayAdapter

0

Проблема здесь в том, что высота моего ListView была слишком мала, так что только первая строка была когда-либо получать оказывается, потому что другие не были видны.

Смежные вопросы