Я использую LiveData и ViewModel из архитектурных компонентов Android.
Это мой класс репозитория -
class DataRepository {
var imagePath : String = ""
}
Это моя модель просмотра, в которой я хочу получить значение imagePath из репозитория после обновления значения в репозитории -
class DataViewModel : ViewModel() {
internal lateinit var imagePath : MutableLiveData<String>
imagePath.value = DataRepository().imagePath
}
Проблема в том, что imagePath в DataRepository имеет тип Нить, а imagePath в DataViewModel имеет тип MutableLiveData.
Как мне присвоить значение imagePath из репозитория значению в ViewModel? Нужно ли мне выполнять приведение типов?
Есть метод: setValue в классе MutableLiveData. Следовательно, вы можете попробовать это:
internal lateinit var imagePath : MutableLiveData<String>
imagePath.setValue(DataRepository().imagePath)
Если вы не храните свои данные в базе данных (sqlite), вам не нужно использовать Room
Спасибо. Всегда ли мне нужно использовать Room при использовании LiveData и ViewModel? Потому что я не видел учебника по LiveData и ViewModel без Room