数据绑定找不到标识符“视图”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据绑定找不到标识符“视图”相关的知识,希望对你有一定的参考价值。
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
>
<data>
<variable
name = "registrationViewModel"
type="com.android.freecommunity.ui.auth.AuthViewModel"/>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false"
android:clipToPadding="false"
tools:context=".ui.auth.Register">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="352dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/intro_background" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginStart="32dp"
android:layout_marginEnd="32dp"
android:layout_marginBottom="32dp"
android:background="@drawable/round_layout_container"
android:clipChildren="false"
android:clipToPadding="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0">
<EditText
android:id="@+id/editText"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:background="@drawable/round_edit_text"
android:drawableLeft="@drawable/user"
android:drawablePadding="16dp"
android:ems="10"
android:hint="Fullname"
android:text="@={registrationViewModel.fullName}"
android:inputType="phone"
android:paddingStart="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageView2" />
<EditText
android:id="@+id/editText2"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:background="@drawable/round_edit_text"
android:drawableLeft="@drawable/email"
android:drawablePadding="16dp"
android:ems="10"
android:hint="Email Address"
android:text="@={registrationViewModel.email}"
android:inputType="textEmailAddress"
android:paddingStart="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editText" />
<Button
android:id="@+id/button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:background="@drawable/round_edge_button"
android:text="REGISTER"
android:onClick="@={(view)-> registrationViewModel.onRegisterButtonClicked(view)}"
android:textColor="@android:color/white"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/spinner2" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:text="Already a member"
android:textColor="@color/not_a_member"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button" />
<TextView
android:id="@+id/textView12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:text="Login"
android:onClick="@{registrationViewModel::onLogin}"
android:textColor="@color/not_a_member"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button" />
<TextView
android:id="@+id/textView13"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:text="Forget Password ?"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView12" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="horizontal"
app:layout_constraintGuide_begin="81dp" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:translationY="-10dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:srcCompat="@drawable/logo_holder"
tools:layout_editor_absoluteY="-22dp" />
<EditText
android:id="@+id/editText3"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:background="@drawable/round_edit_text"
android:drawableLeft="@drawable/phone"
android:drawablePadding="16dp"
android:ems="10"
android:hint="Phone"
android:text="@={registrationViewModel.phoneNumber}"
android:inputType="phone"
android:paddingStart="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editText2" />
<EditText
android:id="@+id/editText4"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:background="@drawable/round_edit_text"
android:drawableLeft="@drawable/calendar"
android:drawablePadding="16dp"
android:ems="10"
android:hint="DOB"
android:text="@={registrationViewModel.date_of_birth}"
android:inputType="date"
android:paddingStart="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editText3" />
<EditText
android:id="@+id/editText5"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:background="@drawable/round_edit_text"
android:drawableLeft="@drawable/address"
android:drawablePadding="16dp"
android:ems="10"
android:hint="Home Address"
android:text="@={registrationViewModel.address}"
android:inputType="textPersonName"
android:paddingStart="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editText4" />
<Spinner
android:id="@+id/spinner"
android:layout_width="345dp"
android:layout_height="40dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:background="@drawable/round_edit_text"
android:drawSelectorOnTop="true"
android:entries="@array/work_category_array"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editText5" />
<Spinner
android:id="@+id/spinner2"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:drawSelectorOnTop="true"
android:entries="@array/daily_payment_plan"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/spinner" />
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView6" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
那是我的xml
fun onRegisterButtonClicked(view: View){
authListener?.onStarted()
if (fullName.isNullOrEmpty()){
authListener?.onFailure("FullName is required")
return
}
if (email.isNullOrEmpty()){
authListener?.onFailure("Email is required")
return
}
if (password.isNullOrEmpty()){
authListener?.onFailure("Password is required")
return
}
这是我尝试在视图模型中使用该函数的地方,我尝试了其他所有方法来在xml中执行onclick,但我一直在遇到错误。[请忽略]
这是我尝试在视图模型中使用该函数的地方,我尝试了其他所有方法来在xml中执行onclick,但我一直在遇到错误。这是即时消息试图在视图模型中使用该函数的地方,我尝试了其他所有方法来在xml中执行onclick,但是我一直在出错。
答案
因此,由于您没有提供得到的错误日志,因此我将尝试添加问题标题中提到的潜在原因
数据绑定找不到标识符“视图”
在您的布局中,您需要从按钮单击回调中删除view
,并且等号无效,因此请在下面替换
<Button
android:id="@+id/button"
android:onClick="@={(view)-> registrationViewModel.onRegisterButtonClicked(view)}" />
with
<Button
android:id="@+id/button"
android:onClick="@{()-> registrationViewModel.onRegisterButtonClicked()}" />
或您也使用
<Button
android:id="@+id/button"
android:onClick="@{registrationViewModel::onRegisterButtonClicked}" />
我省略了其他属性,因此请保持不变。
以上是关于数据绑定找不到标识符“视图”的主要内容,如果未能解决你的问题,请参考以下文章
如何解决:使用自定义视图实现双向数据绑定时“找不到属性'android:text'的getter”?
Android 片段,在 TabHost 中找不到 id 的视图
添加两个窗格的平板电脑布局会导致在移动设备中找不到视图(小于w600dp)