android - 无法膨胀 ColorStateList,将其留给框架 java.lang.UnsupportedOperationException : Can't convert to color: type=0x2

标签 android xml

我有一个登录部分,我使用 TextInputLayout 作为电子邮件和密码。两者都是一样的。我还使用数据绑定(bind)来显示错误消息。

错误发生在 API < 20 上,此时它应该显示错误提示。

    @Override
    public void showEmailError() {
        inputLayoutEmail.setError(sInvalidEmail);
    }

xml 布局:

        <android.support.design.widget.TextInputLayout
            android:id="@+id/til_email"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:layout_marginLeft="@dimen/default_margin_16dp"
            android:layout_marginRight="@dimen/default_margin_16dp"
            android:layout_marginTop="16dp"
            android:layout_below="@id/login_img_logo"
            android:layout_centerHorizontal="true"
            android:textColorHint="@color/gray"
            android:background="@drawable/login_edittext"
            android:errorEnabled="@{viewmodel.obEmailErrorVisibility}"
            >

            <EditText
                android:id="@+id/et_login"
                android:layout_height="@dimen/login_view_height"
                android:layout_width="@dimen/login_view_width"
                android:inputType="text"
                android:maxLength="50"
                android:hint="@string/activity_login_hint_email"
                android:text="@={viewmodel.email}"
                android:textColor="@color/black"
                android:textColorHint="@color/gray"
                android:paddingLeft="@dimen/default_margin_16dp"
                android:enabled="@{viewmodel.obIsEmailFieldEnabled}"
                />

        </android.support.design.widget.TextInputLayout>

        <android.support.design.widget.TextInputLayout
            android:id="@+id/til_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/default_margin_16dp"
            android:layout_marginRight="@dimen/default_margin_16dp"
            android:layout_marginTop="@dimen/default_margin_8dp"
            android:layout_below="@id/til_email"
            android:layout_centerHorizontal="true"
            android:textColorHint="@color/gray"
            android:background="@drawable/login_edittext"
            android:errorEnabled="@{viewmodel.obPassErrorVisibility}"
            >

            <EditText
                android:id="@+id/et_password"
                android:layout_width="@dimen/login_view_width"
                android:layout_height="@dimen/login_view_height"
                android:hint="@string/activity_login_hint_password"
                android:maxLength="50"
                android:inputType="textPassword"
                android:text="@={viewmodel.password}"
                android:textColor="@color/black"
                android:textColorHint="@color/gray"
                android:paddingLeft="@dimen/default_margin_16dp"
                android:enabled="@{viewmodel.obIsPassFieldEnabled}"
                />

        </android.support.design.widget.TextInputLayout>

作为我使用的背景 login_edittext.xml

<solid android:color="@color/white" />

<corners
    android:radius="@dimen/login_edittext_radius"
    />

我查过类似的答案,但大部分都与styles

有关

Can't convert to color: type=0x2 error when inflating layout in fragment but only on Samsung Galaxy and Note 4

最佳答案

所以,我已经完成了适合我的解决方案。

TextInputLayout添加这个字符串

app:errorTextAppearance="@style/MyAppTheme.TextInputLayout"

并将新样式添加到 styles.xml

    <style name="MyAppTheme.TextInputLayout" parent="@android:style/TextAppearance">
         <item name="android:textColor">@color/red</item>
    </style>

关于android - 无法膨胀 ColorStateList,将其留给框架 java.lang.UnsupportedOperationException : Can't convert to color: type=0x2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44692217/

相关文章:

android - 如何在 Android 中播放在线视频?

java - 我可以在没有对话框的情况下卸载应用程序吗?

c - 用 C 解析 XML

.net - 在复杂对象图上使用 IXmlSerializable 接口(interface)

c# - 使用 XmlWriter 附加现有的 XML 文件

android - Firebase 控制台可以发送数据负载吗?

android - 无法检测设备兼容性。请选择目标设备

java - Jersey 客户端无法使用 JAXB Moxy 序列化发送/接收 XML 消息?

mysql - MYSQL存储过程中的XML解析

android - 从 TabHost 中删除选项卡及其内部的 Activity ( Intent )