数据绑定找不到标识符“视图”

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}" />

我省略了其他属性,因此请保持不变。

以上是关于数据绑定找不到标识符“视图”的主要内容,如果未能解决你的问题,请参考以下文章

找不到用于片段的id 0x7f0800c4的视图

如何解决:使用自定义视图实现双向数据绑定时“找不到属性'android:text'的getter”?

Android 片段,在 TabHost 中找不到 id 的视图

添加两个窗格的平板电脑布局会导致在移动设备中找不到视图(小于w600dp)

VC ++ WINAPI窗体:找不到标识符(C3861错误)

Espresso 找不到视图:NoMatchingViewException