我看到许多文章处理MVVM的双向绑定。但我想用唯一的真相来处理这个问题。我不想为这种情况创建多个状态流。我有一个StateFlow,它在实体内部具有所有视图状态。如何将多个EditText值同步到StateFlow?
我已经添加了多个TextWatcher来将事件发送到ViewModel,但这种方式导致了大量样板代码。
我收到你的问题,我认为你需要使用viewBinding功能,
所以第一步你需要在渐变(模块(中启用viewBinding功能。
android{
buildFeatures {
viewBinding = true //this is mandatory
}
...
}
然后你可以绑定你的视图我用我的代码作为的例子
活动类内的您可以使用lateinit声明您的活动的viewBinding,并在Createfun中膨胀您的活动
class HomeActivity : AppCompatActivity() {
private lateinit var binding: ActivityHomeBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityHomeBinding.inflate(layoutInflater)
setContentView(binding.root)
...
}
}
,最后您可以使用绑定val 轻松访问您的视图
示例
binding.textView.text = "example"
上面的代码将类似于
findViewById<TextView>(R.id.text_view).text ="example"