Как наблюдать объект, который находится во ViewModel из View? Например. У меня есть класс:
class MyClass {
var variable: Int = 0
fun increment() {
variable += 1
}
В модели представления у меня есть экземпляр этого класса - MyClassObject. Существует фрагмент TextView во фрагменте, и я хочу связать его с MyClassObject.variable
EDIT.
Я сделал что-то вроде этого, и это работает, но я думаю, что это не лучший способ сделай это.
class GameState
{
private val _variable = MutableLiveData<Int>()
val variable: LiveData<Int>
get() = _variable
init
{
_variable.value = 0
}
fun increment()
{
_variable.value = _variable.value!!.plus(1)
}
}
Модель представления:
class GameViewModel : ViewModel()
{
private val _gameState: GameState = GameState()
val gameState: GameState
get() = _gameState
fun imgClick()
{
gameState.increment()
}
}
Просмотр:
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@{gameViewModel.gameState.variable.toString()}" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="@{() -> gameViewModel.imgClick()}"