如何在 EditView 上使用 DataBinding
How to use DataBinding on EditViews
我一直在尝试制作一个登录和注销应用程序,但我仍然无法通过使用绑定来检查写入的数据来从 EditViews 获取文本
但是每次我尝试都会出现这个错误
****/ data binding error ****msg:Cannot find the setter for attribute 'android:text' with parameter type androidx.lifecycle.LiveData on android.widget.TextView.
file:C:\Users\mehmet\Desktop\andfun-kotlin-sleep-tracker-with-recyclerview\app\src\main\res\layout\register_layout.xml
这是布局中编辑视图的示例
<EditText
android:id="@+id/email_editText_Register"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="8dp"
android:ems="10"
android:hint="@string/hint_email"
android:importantForAutofill="no"
android:inputType="textEmailAddress"
**android:text="@{register.emailEditTextRegisterContext}"**
app:layout_constraintEnd_toEndOf="@+id/editText2"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="@+id/editText2"
app:layout_constraintTop_toBottomOf="@+id/editText2" />
这是使用观察者在 kotlin 中的变量 class
private val _emailEditTextRegisterContext = MutableLiveData<EditText>()
val emailEditTextRegisterContext: LiveData<EditText>
get() = _emailEditTextRegisterContext
这是我用来获取文本的方法
val emails = _emailEditTextRegisterContext.value?.text.toString()
您应该使用 MutableLiveData<String>()
而不是 MutableLiveData<EditText>()
,因为文本是字符串。
我一直在尝试制作一个登录和注销应用程序,但我仍然无法通过使用绑定来检查写入的数据来从 EditViews 获取文本 但是每次我尝试都会出现这个错误
****/ data binding error ****msg:Cannot find the setter for attribute 'android:text' with parameter type androidx.lifecycle.LiveData on android.widget.TextView. file:C:\Users\mehmet\Desktop\andfun-kotlin-sleep-tracker-with-recyclerview\app\src\main\res\layout\register_layout.xml
这是布局中编辑视图的示例
<EditText
android:id="@+id/email_editText_Register"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:layout_marginTop="8dp"
android:ems="10"
android:hint="@string/hint_email"
android:importantForAutofill="no"
android:inputType="textEmailAddress"
**android:text="@{register.emailEditTextRegisterContext}"**
app:layout_constraintEnd_toEndOf="@+id/editText2"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="@+id/editText2"
app:layout_constraintTop_toBottomOf="@+id/editText2" />
这是使用观察者在 kotlin 中的变量 class
private val _emailEditTextRegisterContext = MutableLiveData<EditText>()
val emailEditTextRegisterContext: LiveData<EditText>
get() = _emailEditTextRegisterContext
这是我用来获取文本的方法
val emails = _emailEditTextRegisterContext.value?.text.toString()
您应该使用 MutableLiveData<String>()
而不是 MutableLiveData<EditText>()
,因为文本是字符串。