Jetpact 之 LiveData

2022-01-20  本文已影响0人  咸死的鱼_O
LiveData和ViewModel的关系
LiveData应用:
class MyViewModel :ViewModel() {
    private lateinit var liveData:MutableLiveData<Int>

   fun getCurrentSecond():MutableLiveData<Int>{
        if(!this::liveData.isInitialized){
            liveData = MutableLiveData()
            liveData.value = 0
        }
        return liveData
    }
}
class Test2Activity : AppCompatActivity() {

    private var viewModel: MyViewModel? = null
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_test2)

        viewModel =
            ViewModelProvider(this, ViewModelProvider.AndroidViewModelFactory(application)).get(
                MyViewModel::class.java
            )
        findViewById<TextView>(R.id.textView).text = viewModel?.getCurrentSecond()?.value.toString()
        viewModel?.getCurrentSecond()?.observe(this) {
            findViewById<TextView>(R.id.textView).text = it.toString()
        }
        startTime()
    }

    private fun startTime() {
        Timer().schedule(
            object : TimerTask() {
                override fun run() {
                    viewModel?.getCurrentSecond()
                        ?.postValue((viewModel?.getCurrentSecond()?.value?.plus(1)))
                }

            },
            1000,
            1000
        )
    }
}
LiveData的优势:
上一篇 下一篇

猜你喜欢

热点阅读