如何在数据绑定中将另一个视图兄弟引用为适配器参数

How to refrence another view sibling as adapter argument in data binding

我的视图中有 2 个编辑文本,并且我正在使用数据绑定。我想要实现的是,每当第一个文本视图有 5 个字符时,焦点就会传递到下一个编辑文本,并且只要该编辑文本也有 5 个字符,焦点就应该从整个视图中移除。

这是我为绑定适配器编写的代码:

@BindingAdapter("setMaxLength", "nextPart")
fun EditText.onTextChange(maxLength: Int, nextPart: EditText) {
    filters = arrayOf<InputFilter>(InputFilter.LengthFilter(maxLength))
    addOnTextChangeListener {
        if (it.length == maxLength) {
            clearFocus()
            nextPart.requestFocus()
        }
    }
}

我不知道如何将这 2 个参数传递给我 xml 中的函数。

            <androidx.appcompat.widget.AppCompatEditText

                android:id="@+id/firstPart"
                nextPart="alphabet"
                setMaxLength="@{5}" />

            <androidx.appcompat.widget.AppCompatEditText
                android:id="@+id/alphabet"
                setMaxLength="@{5}" />

此代码存在错误的构建问题:

Cannot find a setter for <androidx.appcompat.widget.AppCompatEditText setMaxLength> that accepts parameter type 'int'

If a binding adapter provides the setter, check that the adapter is annotated correctly and that the parameter type matches.

我不确定我该怎么做,另外 addOnTextChangeListener 是一个文本观察器并且功能已经过测试。

我走的路对吗?任何想法将不胜感激。

尝试这样做

 <androidx.appcompat.widget.AppCompatEditText

            android:id="@+id/firstPart"
            nextPart="@{alphabet}"
            setMaxLength="@{5}" />