如何解决如何在数据绑定中将另一个视图同级引用为适配器参数
我的视图中有 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
是一个文本观察器,并且该功能已经过测试。
我是否走在正确的道路上?任何想法将不胜感激。
解决方法
试试这样做
@updatedAt
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。