Несоответствие типов при получении значения переменной из репозитория в ViewModel

Я использую 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? Нужно ли мне выполнять приведение типов?

1
0
836
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Есть метод: setValue в классе MutableLiveData. Следовательно, вы можете попробовать это:

internal lateinit var imagePath : MutableLiveData<String>
imagePath.setValue(DataRepository().imagePath)

Спасибо. Всегда ли мне нужно использовать Room при использовании LiveData и ViewModel? Потому что я не видел учебника по LiveData и ViewModel без Room

Gissipi_453 26.05.2018 19:30

Если вы не храните свои данные в базе данных (sqlite), вам не нужно использовать Room

Cao Minh Vu 26.05.2018 19:34

Другие вопросы по теме