TextInputLayout工作正常,当尝试设置错误时,显示错误。
代码:
if (etFirstName.getText().length() == 0) {
etFirstName.requestFocus();
tvFirstName.setError("Please enter firstname");
} else {
tvFirstName.setError(null);
tvFirstName.setErrorEnabled(false);
}
检查日志:
java.lang.RuntimeException: Failed to resolve attribute at index 24
at android.content.res.TypedArray.getColor(TypedArray.java:401)
at android.widget.TextView.<init>(TextView.java:692)
at android.widget.TextView.<init>(TextView.java:629)
at android.widget.TextView.<init>(TextView.java:625)
at android.widget.TextView.<init>(TextView.java:621)
at android.support.design.widget.TextInputLayout.setErrorEnabled(TextInputLayout.java:297)
at android.support.design.widget.TextInputLayout.setError(TextInputLayout.java:344)
8条答案
按热度按时间8oomwypt1#
为您的文本输入布局给予有效的样式(android:theme="@style/Theme.AppCompat”)
您需要添加appCompat & support设计依赖项(如果没有)
在清单文件中添加AppCompat主题,
2j4z5cfb2#
文本输入布局的Sytle主题:
在布局中用作:
368yc8dk3#
主要片段.kt:
XML布局:
6qftjkof4#
@Sevastyan的解决方案非常适合使用xml布局。
但是,如果我有一个TextInputLayout和一个TextInputEditText,它们都是我通过编程创建的,我这样做:
我会得到一个错误。但只是:
对我有用。
1rhkuytd5#
使用这个它永远不需要主题.AppCompat
7rtdyuoh6#
使用文本工具
b5buobof7#
尝试以下代码以显示
TextInputLayout
中的错误:46qrfjad8#
虽然我不完全理解为什么会出现这个问题,但它必须对Android如何根据其状态将颜色应用到视图做一些事情。
下面是我解决这个问题的方法:
1)定义自定义样式,该样式仅用于设置错误(或提示)的样式:
在
res/values/styles.xml
中添加新样式节点:2)将样式应用到
TextInputLayout
:此外,请确保指定
errorEnabled
属性: