Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

msg:Cannot find the getter for attribute 'android:text' with value type java.lang.String in data binding?

I am trying to use data binding in the edittext, In the morning it is working fine but suddenly got the error:

****/ data binding error ****msg:Cannot find the getter for attribute 'android:text' with value type java.lang.String on android.widget.EditText. file:/home/itstym/ApkProjects/Reminder/app/src/main/res/layout/activity_main.xml loc:20:4 - 34:40 ****\ data binding error ****

EditText at line 20:4 -34:40

 <EditText
        app:error="@{login.errorEmail}"
        android:text="@={login.userEmailAddress}"
        android:hint="Email Address"
        android:id="@+id/email_address"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:ems="10"
        android:inputType="textPersonName"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="24dp"/>

View Holder:

 @Bindable
var userEmailAddress:String = String()
    set(userEmailAddress){
        field=userEmailAddress
        notifyPropertyChanged(R.id.email_address)
        /*to check Email for validation on every character inserted by user*/
        notifyPropertyChanged(BR.errorEmail)
    }
    get() {
    return field
}

What went suddenly wrong?

Solution tried: 1. Invalidate cache and restart. 2. Clean project and Rebuild project.

like image 366
Ankur_009 Avatar asked Nov 07 '22 19:11

Ankur_009


1 Answers

Remove get() method from userEmailAddress as Kotlin provide Synthetic property access in it, you can direct access userEmailAddress without get()

like image 138
Chintak Patel Avatar answered Nov 14 '22 23:11

Chintak Patel