Как я могу обрабатывать двустороннюю привязку в архитектуре MVI?
Я вижу много статей, посвященных двусторонней привязке с помощью MVVM. Но я хочу решить эту проблему, используя единый источник правды. Я не хочу создавать несколько потоков состояний для этого случая. У меня есть StateFlow, у которого есть все состояние просмотра внутри объекта. Как я могу обеспечить синхронизацию с несколькими значениями EditText для StateFlow?
Я добавил несколько TextWatcher для отправки события в ViewModel, но это вызывает такой шаблонный код.
1 ответ
У меня есть ваш вопрос, и я думаю, что вам нужно использовать функцию viewBinding,
поэтому первым шагом вам нужно включить функции viewBinding в вашем gradle (модуле).
android{
buildFeatures {
viewBinding = true //this is mandatory
}
...
}
тогда вы можете связать свое представление, я использую свой код в качестве примера
внутри класса активности вы можете объявить viewBinding своей активности с помощью lateinit и раздуть свою активность внутри onCreate fun
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"