I am stuck in binding adapter. Following adapter is not working and it looks like that IDE is having trouble in finding this adpater. I have tried many solutions, but all in vain.
I tried all of answers provided in this question, but nothing worked: Cannot find the setter for attribute with parameter
Note: I have another adapter to load image in same file, and it is working fine.
What I want to achieve is simply, whenever user enters the characters in some editText, if that editText has destination specified, then request focus of destination after character count reaching to limit.
Binding Adapter
@BindingAdapter(value = ["destination","limit"])
fun moveToNext(editText: EditText, dest: EditText, limit:Int) {
editText.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) {
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
if (count == limit) {
dest.requestFocus()
}
}
})
}
in .xml
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:bind="http://schemas.android.com/tools">
<data>
<variable
name="viewModel"
type="com.eshaafi.eshaafi.ui.auth.mobile_verification.MobileVerificationViewModel" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true">
<ImageView
android:id="@+id/logo"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_marginTop="48dp"
android:src="@drawable/ic_launcher_512"
android:transitionName="sharedLogo"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.35"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/logoText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="e s h a a f i"
android:textColor="@color/colorLogoBlue"
android:textSize="24sp"
android:textStyle="bold"
android:transitionName="sharedLogoText"
app:layout_constraintBottom_toBottomOf="@+id/logo"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.12"
app:layout_constraintStart_toEndOf="@+id/logo"
app:layout_constraintTop_toTopOf="@+id/logo" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:text="Wait for verification code"
android:textColor="@color/colorBlack"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/logo" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="You will soon receive verification code on"
android:textSize="14sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView" />
<TextView
android:id="@+id/mobileNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@={viewModel.mobileNumber}"
android:textColor="@color/colorBlack"
android:textStyle="bold"
android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2" />
<EditText
android:id="@+id/digit_1"
style="@style/CodDigitEditText"
android:text=""
app:layout_constraintEnd_toStartOf="@+id/digit2"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="32dp"
app:layout_constraintTop_toBottomOf="@+id/mobileNumber"
destination="@{digit2}"
limit="1"
/>
<EditText
android:id="@+id/digit2"
style="@style/CodDigitEditText"
android:text=""
app:layout_constraintEnd_toStartOf="@+id/digit_3"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/digit_1"
app:layout_constraintTop_toTopOf="@+id/digit_1" />
<EditText
android:id="@+id/digit_3"
style="@style/CodDigitEditText"
android:text=""
app:layout_constraintEnd_toStartOf="@+id/dash"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/digit2"
app:layout_constraintTop_toTopOf="@+id/digit_1" />
<View
android:id="@+id/dash"
android:layout_width="16dp"
android:layout_height="2dp"
android:background="@color/colorGrey"
app:layout_constraintEnd_toStartOf="@+id/digit_4"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/digit_3"
app:layout_constraintTop_toTopOf="@id/digit_1"
app:layout_constraintBottom_toBottomOf="@id/digit_1"/>
<EditText
android:id="@+id/digit_4"
style="@style/CodDigitEditText"
android:text=""
app:layout_constraintEnd_toStartOf="@+id/digit_5"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/dash"
app:layout_constraintTop_toTopOf="@+id/digit_1" />
<EditText
android:id="@+id/digit_5"
style="@style/CodDigitEditText"
android:text=""
app:layout_constraintEnd_toStartOf="@+id/digit_6"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/digit_4"
app:layout_constraintTop_toTopOf="@+id/digit_1" />
<EditText
android:id="@+id/digit_6"
style="@style/CodDigitEditText"
android:text=""
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/digit_5"
app:layout_constraintTop_toTopOf="@+id/digit_1"
android:imeOptions="actionDone"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/btnContinue"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="64dp"
android:layout_marginRight="64dp"
android:layout_marginBottom="16dp"
android:alpha="0"
android:padding="16dp"
android:text="Continue"
android:textColor="@color/colorPrimary"
android:visibility="gone"
app:backgroundTint="@color/colorWhite"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
Errorr
Cannot find a setter for <android.widget.EditText destination> that accepts parameter type 'android.widget.EditText'