По какой-то причине position
(из onItemClick
) связано с количеством элементов в ListView
(, а не с адаптером ), включая верхние и нижние колонтитулы.Когда вы устанавливаете OnItemClickListener
, вы должны получить выбранный элемент, вызвав listView.getItemAtPosition(position)
вместо adapter.getItem(position)
.
На самом деле, вы всегда должны использовать getItemAtPosition
, потому что этот способ не имеет значения, если ваш ListView
имеет верхние и нижние колонтитулы, и если вы добавляете новые верхние колонтитулы, вам не нужно менять код.
И если вы не хотите, чтобы ваш заголовок можно было выбирать, вы должны добавить его следующим образом:listView.addHeaderView(headerView, null, false)
.