我的布局中有一堆TextInputEditText,定义如下:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:id="@+id/confirmPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/registration_confirm_password"
android:inputType="textPassword" />
</android.support.design.widget.TextInputLayout>
当用户尝试提交表单时,我有一个 validate 方法来检查每个字段并在无效字段上设置错误,如下所示:
if(confirmPassword.text.toString() != password.text.toString()) {
confirmPassword.error = "Passwords don't match"
confirmPassword.setOnKeyListener { _, _, _ ->
confirmPassword.error = null
true
}
valid = false
}
一旦用户开始纠正他的错误,OnKeyListener 就会在那里消除错误。
此代码在我的模拟器和装有 Android 5.1.1 的设备上完美运行。但是在我的一位用户的设备上,一台装有 Android 6.0 的三星 Galaxy S6 Edge,当他犯了一个错误并且某个字段上有错误时,他就无法再编辑它了。
我使用 TextInputEditText 错了吗?这是一个已知的错误吗?有解决方法吗?