Я понятия не имею, почему мой mediatorLiveData не обновляется? Я также установил наблюдателя в моем файле активности. Я пытаюсь сделать это
- нажмите кнопку, которая добавит источник живых данных в мои mediatorLivedata
- другую кнопку, которая будет продолжать изменять liveata, чтобы мои живые данные посредника должны обновляться ( Здесь кнопка changeLiveData1)
Я делаю это в том порядке, в котором это не работает. Также я инициализировал во время вызова конструкции мою 1-ю точку. По-прежнему та же проблема .. MainActivity.kt
class MainActivity : AppCompatActivity() {
lateinit var viewModel: MainViewModel
override
fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
viewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)
viewModel.mediatorLiveData.observe(this, Observer {
text_view_content.text = it
})
livedata1.setOnClickListener {
viewModel.changeLiveData1()
}
livedata2.setOnClickListener {
viewModel.changeLiveData2()
}
add_source.setOnClickListener {
viewModel.addSourceLivedata1()
}
}
}
MainViewModel.kt класс MainViewModel: ViewModel () {
val mediatorLiveData: MediatorLiveData<String>
get() = MediatorLiveData()
val _livedata1: MutableLiveData<String>
get() = MutableLiveData<String>()
var change = 0
fun changeLiveData1() {
change++
_livedata1.value = "chnaged lived data...$change"
}
fun changeLiveData2() {
}
fun addSourceLivedata1() {
var count = 0
mediatorLiveData.addSource(_livedata1) {
count++
Log.d("MainView", "$count is ")
if (count > 5) {
mediatorLiveData.value = "changed from adding source... $count"
} else {
mediatorLiveData.value = "count is less than 5"
Log.d("MainView", "count is $count")
}
}
}
}