CursorAdapter _id не уникален

Я думаю, что это может быть распространенной проблемой с CursorAdapter, но я не смог найти статей, связанных с этой проблемой.

По сути, я работаю с CursorAdapter, который заполняет данные RecyclerView. Когда я передаю адаптеру курсор с уникальным столбцом _id, все работает нормально.

Однако, когда у меня есть курсор, содержащий столбец _id, который не уникален, адаптер портит мои элементы. Этот курсор представляет собой набор результатов, возвращаемый объединением двух таблиц в базе данных SQLite, если вы хотите знать, почему.

Я решил эту проблему, установив cursorAdapter.hasStableIds(false). Фактически, адаптер снова работает отлично.

Напоследок мои вопросы: - Правильно ли я решил задачу? - Что произойдет за кулисами, если для hasStableIds установлено значение false?


person Tri Thanh Nham    schedule 25.05.2017    source источник
comment
stackoverflow.com/questions/18217416 /   -  person edwin    schedule 25.05.2017
comment
stackoverflow.com/a/26206584/1450401   -  person edwin    schedule 25.05.2017
comment
@edwin Пожалуйста, проголосуйте за закрытие.   -  person CL.    schedule 25.05.2017
comment
@КЛ. Я просто пытался быть милым, на этот вопрос уже есть ответ   -  person edwin    schedule 25.05.2017
comment
@edwin Это именно то, для чего предназначена функция «закрыть как дубликат».   -  person CL.    schedule 25.05.2017