danishajaib
2/10/2020 - 4:37 AM

Using ViewModel Architecture

class MyViewMode(app:Application) : AndroidViewModel(app)
{

    val headline = MutableLiveData<String>()
    val dice = MutableLiveData<IntArray>()
    val context = app
    init {
        Log.d(LOG_TAG, "view model created")
        
        //initialize values
        
        headline.value = context.getString(.....)
        intArray = IntArrayOf(6,6,6,6,6)
        
        
    }
    
    fun rollDice()
    {
      dice.value = DiceHelper.rollDice()
      headline.value= DiceHelper.evaluateDice()
    }

}

//how to use it
private lateinit var myViewModel:MyViewModel

myViewModel = ViewModelProviders.of(this).get(MyViewModel::java.class)
myViewModel.headline.observe(this, Observer {headline.text = it})
myViewModel.dice.observe(this, Observer {dice = it})

button.setOnClickListener{
  myViewModel.rollDice()
}