MutableLiveData> () -> Val не может быть переназначен - PullRequest
1 голос
/ 29 октября 2019

В моем проекте ViewModel в Android:

import android.app.Application
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData

class MainViewModel(application: Application) : AndroidViewModel(application) {
    private var waitressCallContainerHeights = MutableLiveData<Pair<Int, Int>>()

    fun init() {
           waitressCallContainerHeights.value.first = 200
    }
}

Но я получаю ошибку компиляции в этой строке:

       waitressCallContainerHeights.value.first = 200

Val cannot be reassigned

Я хочу установить сначала и секунд значения в шутках init

Ответы [ 2 ]

6 голосов
/ 29 октября 2019

Хотя ваши liveData изменчивы, сама пара - нет. Вам нужно сделать: waitressCallContainerHeights.value = Pair(200,300/* for example */)

1 голос
/ 29 октября 2019

Вы можете также инициализировать переменную в самом объявлении с помощью apply, примерно так:

private var waitressCallContainerHeights = MutableLiveData<Pair<Int, Int>>().apply { value = Pair(200, 300) }

...