Использование RoomDatabase в моделях с несколькими видамиAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Использование RoomDatabase в моделях с несколькими видами

Сообщение Anonymous »

У меня есть модель класса/представления базы данных, которую я хотел бы использовать в других моделях представления для управления данными локально. Я смог внедрить базу данных номеров с помощью модели одной просмотра, но у меня есть несколько разных типов классов данных, и я бы хотел отдельный viewModel для каждого. Как я могу реализовать класс базы данных, который у меня есть, чтобы различные ViewModels могли получить доступ к базе данных комнаты? Ниже приведена вида базы данных, а также пример ViewModel.

Код: Выделить всё

class DatabaseModel(): ViewModel() {
lateinit var database: AppDatabase

fun setDatabase(context: Context) {
database = Room.databaseBuilder(
context,
AppDatabase::class.java, "database"
).build()
}
}
< /code>
viewmodel: < /p>
class DataModel(): ViewModel() {
lateinit var database: AppDatabase
private val _mutableDataFlow: MutableStateFlow = MutableStateFlow(mutableListOf())
val data: StateFlow = _mutableDataFlow.asStateFlow()

fun setDatabase(context: Context) {
database = Room.databaseBuilder(
context,
AppDatabase::class.java, "database"
).build()
}

fun loadData() {
viewModelScope.launch {
_mutableDataFlow.value = database.dataDao().getAll()
}
}
}
Изменить: Учитывая, что это лучшая практика, я бы хотел реализовать рукоять как решение.

Подробнее здесь: https://stackoverflow.com/questions/797 ... iew-models
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»