Я использую аналогичное решение для многих похожих тем, но все же оно не хочет работать, и не могу понять, почему:
Моя сущность
@Entity(tableName = "single_item")
data class SingleItem (
@PrimaryKey(autoGenerate = true)
val id: Long? = 0L,
val name: String,
val icon: String,
val price: Int)
DAO
@Insert
suspend fun insertItem(item: SingleItem): Long
Репо
suspend fun insertItem(item: SingleItem): Long {
return myDao.insertItem(item)
}
Viewmodel
var insertedId = 0L
fun insertItem(item: SingleItem) = viewModelScope.launch {
insertedId = myRepository.insertItem(item)
}
Наконец, вызов из фрагмента
val newItem = SingleItem(null, "name","icon_name", 9999)
viewModel.insertItem(newItem)
Log.i("INSERT_ID", "Inserted ID is: ${viewModel.insertedId}")
И после того, как я проверил журнал, переменная insertId всегда возвращает 0. Она не меняется. Что может быть не так?