您当前的位置: 首页 >  android

蓝不蓝编程

暂无认证

  • 3浏览

    0关注

    706博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

安卓DataBinding报错:android.content.res.Resources$NotFoundException: String resource ID #0x1

蓝不蓝编程 发布时间:2019-03-06 15:57:45 ,浏览量:3

报错信息
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}"),此为问题症结。


解决方案

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://blog.csdn.net/yinxing2008/article/details/84555061 更多技术总结好文,请关注:「程序园中猿」

关注
打赏
1639405877
查看更多评论
立即登录/注册

微信扫码登录

0.0457s