Publicado en Android

Cannot change whether this adapter has stable IDs while the adapter has registered observers


Si en un RecyclerView se establece un valor con setHasStableIds al ir a otra actividad, fragmento y volver en la vista donde se muestra la lista, puede arrojar el siguiente error

Cannot change whether this adapter has stable IDs while the adapter has registered observers

Solución

Para solventar se debe mirar primero si existen observadores, en caso de no existir se tiene permiso para usar setHasStableIds

if (!adapter.hasObservers()) {
    adapter.setHasStableIds(true)
}