проблемы:
У меня есть список
val groupedCountries: Map<String, List<Country>>
который я привожу к типу List и кладу эти значения в список адаптера
adapter.countryList = groupedCountries.entries.toList()
в методе getItemViewType создаю условие, которое в зависимости от позиции должно вернуть 1 или 0 после чего я пытаюсь установить нужный тип макета для элемента списка, но в методе onCreateViewHolder возникает ошибка:
java.lang.IllegalArgumentException: Invalid item type
System.err W at RecyclerViewAdapter.getItemViewType(RecyclerViewAdapter.kt:73)
Есть у кого-нибудь идеи почему это может быть и как это исправить?
Покажите код адаптера в hatebin.com или в гите.
https://hatebin.com/qryewvvhvm
Надеюсь правильно показал? Раньше этим сервисом не пользовался
Да, правильно. getItemViewType должен возвращать одно из 2-х правильных значений. Без try-catch. Как такое может быть, что тип элемента списка может быть неизвестен? Не доверяете собственным данным? 😏
Из этого можно сделать вывод что в списке который я проверяю на условие есть какой то другой тип???) или это не правильный вывод?)
Ну, вы же предусматриваете такую возможность ) Там вообще странная логика. Типа, если попали в when, но не нашли нужный тип, тогда throw, а если что-то вообще пошло настолько плохо, что вылетел exception, тогда просто вернем -1 и продолжим как ни в чем не бывало :)
Обсуждают сегодня