安卓DataBinding报错:android.content.

作者: 蓝不蓝编程 | 来源:发表于2019-03-06 15:57 被阅读1次

    报错信息

    E/AndroidRuntime: FATAL EXCEPTION: main
        Process: com.cxyzy.demo, PID: 4520
        android.content.res.Resources$NotFoundException: String resource ID #0x1
            at android.content.res.Resources.getText(Resources.java:410)
            at android.content.res.HwResources.getText(HwResources.java:465)
            at android.widget.TextView.setText(TextView.java:5589)
            at com.cxyzy.demo.databinding.ItemUserBindingImpl.executeBindings(ItemUserBindingImpl.java:129)
            at androidx.databinding.ViewDataBinding.executeBindingsInternal(ViewDataBinding.java:448)
            at androidx.databinding.ViewDataBinding.executePendingBindings(ViewDataBinding.java:420)
            at com.cxyzy.demo.UserAdapter$ViewHolder.bind(UserAdapter.kt:40)
            at com.cxyzy.demo.UserAdapter.onBindViewHolder(UserAdapter.kt:16)
            at com.cxyzy.demo.UserAdapter.onBindViewHolder(UserAdapter.kt:12)
    

    分析

    1)根据报错代码行打开报错代码(这个代码时dataBinding自动生成的)
    com.cxyzy.demo.databinding.ItemUserBindingImpl.executeBindings(ItemUserBindingImpl.java:129)


    2)较为明显,userId是int类型,但是直接被setText当作入参了。
    3)对应xml文件(存在:android:text="@{user.id}"),此为问题症结。
    <TextView
                android:id="@+id/textView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingStart="10dp"
                android:text="@{user.id}"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                tools:text="id" />
    

    解决方案

    1)修改android:text="@{user.id}"android:text="@{Integer.toString(user.id)}"
    这样对应的binding代码为:


    2)修改android:text="@{user.id}"android:text='@{user.id+""}'
    这样对应的binding代码为:

    经验总结

    在xml中使用变量赋值text时,需要保证类型是字符串类型。

    附录

    参考资料:https://www.cnblogs.com/woaixingxing/p/7753726.html

    安卓开发技术分享: https://www.jianshu.com/p/442339952f26
    更多技术总结好文,请关注:「程序园中猿」

    相关文章

      网友评论

        本文标题:安卓DataBinding报错:android.content.

        本文链接:https://www.haomeiwen.com/subject/bxxxpqtx.html