我已经广泛搜索了这个问题,但还没有找到合理的解决方案。
我要做的只是使用布局中的数据绑定(bind)格式设置一个 onClickListener :
android:onClick="@{() -> subjectsViewModel.onClickAdd()}"
其中subjectViewModel 是一个布局变量,我将 fragment 中的ViewModel 传递给它。我想要的是将当前输入的编辑文本数据传递给 onClickAdd() 函数。
我发现的唯一解决方案是使用双向数据绑定(bind),但我认为设置这样的基本功能不需要它。
最佳答案
您可以传递 View 引用并在将文本从 View 转换回 TextView 后从 TextView 获取文本。像这样的东西。
android:onClick="@{(view) -> subjectsViewModel.onClickAdd(view)}"
并在您的 View 模型中创建类似这样的内容。fun onClickAdd(view: View){
val myText = (view as TextView).text ?: ""
//here use text
}
关于android - 对 onClickListeners 使用数据绑定(bind)时如何将 UI 数据传递给 ViewModel 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63315774/