写一个单例
object SingleTon {
val SingleTonLiveData = MutableLiveData<Int>()
}
写一个viewModel
这里viewModel对单例的数据进行了监听,并且转发
class MainViewModel :ViewModel(){
val viewModelLiveData = MediatorLiveData<Int>()
init {
viewModelLiveData.addSource(SingleTon.SingleTonLiveData){
Log.d("leinuo", "MediatorLiveData listed")
viewModelLiveData.postValue(it)
}
}
}
mainActivity
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
val liveData = ViewModelProvider(this).get(MainViewModel::class.java)
liveData.viewModelLiveData.observe(this){
Log.d("leinuo", "what's the number $it")
}
var id = 0
binding.text.setOnClickListener{
SingleTon.SingleTonLiveData.postValue(id)
id+=1
}
}
}
实现了点击自动加一的效果