Модель просмотра вызовов в классе - PullRequest
1 голос
/ 31 октября 2019

Мне нужно использовать модель представления, чтобы работать как слушатель, но моя проблема в том, как вызвать модель представления в классе kotlin для наблюдения целевого атрибута

class ExoPlayerWrapper(){
  init {
    initializePlayer()
// the next part of code need a lifecycle owner as Input to initilize the 
// Provider and my class is not lifecycle owner
    mLoginViewModel = ViewModelProvider(this).get(LoginViewModel::class.java)
//mLoginViewModel.observe 
}

Ответы [ 2 ]

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

Это не похоже на представление, почему бы не использовать просто LiveData?

class ExoPlayerWrapper {

  private val _events = MutableLiveData<String>(
  val events: LiveData<String>
    get() = _events


  init {
    initializePlayer()
    value = "stop"
  }

  // Example method
  private fun notifyPause() {
    _events.value = "pause"
  }

}

// Then outside
class SomeClass(player: ExoPlayerWrapper) {

  init {
    player.events.observeForever { event -> /* handle event */ }
  }

}
0 голосов
/ 31 октября 2019

Я думаю, что вам не хватает ViewModelProviders.of (context) Метод. Попробуйте это как:

viewModel =  ViewModelProviders.of(this).get(CheckoutViewModel::class.java)
...