android - 通过绑定(bind)单击提交时从 ViewModel 中清除 EditText

标签 android android-studio kotlin mvvm data-binding

出现时,我试图从 ViewModel 中清除 EditText。评论 被点击。我已经通过 View 绑定(bind)到 ViewModel 以及 Comment 按钮。当从 View 中单击评论按钮时,有没有办法清除 EditText 而无需在实际 Activity 中创建 OnClick 监听器?

这是查看代码。

<Button
   android:id="@+id/Comment_button"
   android:onClick="@{() -> ViewModel.newComment()}"
   android:text="Comment"/>

<EditText
   android:id="@+id/Comment_textbox"
   android:text="@={ViewModel.Comment}" />

这是它正在访问的 ViewModel。
var Comment : String? = null

fun newComment()
    {
        //Sends data to repostitory.
    }


是否有一些代码可以清除 EditText 而不必在 Activity 中创建 onclick 监听器?

最佳答案

而不是简单的 String属性,您可以创建 ObservableField<String>
进行以下更改,

var Comment  =  ObservableField<String>()

然后在你的绑定(bind)方法中
fun newComment()
    {
        Comment.set("")
    }

因此,每当您的 Comment属性变化,将立即反射(reflect)在您的UI .

关于android - 通过绑定(bind)单击提交时从 ViewModel 中清除 EditText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60806667/

相关文章:

android-studio - Android Studio 正在使用这个 JDK 位置......这与 Gradle 默认使用的不同

android - 允许一个参数有不同的类型,例如 String 和 StringRes int 的求和类型

unit-testing - 如何编译使用 hamcrest 'is' 的 Kotlin 单元测试代码

android - 为什么 Asset Manager 的创建加载时间太长,导致应用程序启动缓慢

java - 在 Java/Android 中显示天数差异

java - 当我们声明静态时分配的内存在哪里?

android - 自定义android对话框中Button的onClickListener

java - 为什么Retrofit使用Interface而不是普通的java类?

android-studio - 当我使用 camerax "1.0.0-alpha06"时,为什么 zoomRatio 会显示错误 Unresolved reference ?

java - 如何在启动 Kotlin 时刷新 Activity ?