如何在MVI体系结构中处理双向绑定



我看到许多文章处理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"

最新更新