您的位置:首页 > 移动开发 > Android开发

setText() 引起 android.content.res.Resources$NotFoundException

2015-01-15 16:32 531 查看
今天很奇怪,用TextView.setText()这个看似简单的方法时居然也能报错:

lightData_C1.setText(lightData[1]);
android.content.res.Resources$NotFoundException: String resource ID #0x531

说是没找到 ID为#0x531的资源。

其中,lightData_C1是个TextView,lightData[1]是一个int[ ]数组的元素,准备展示在lightData_C1中,经测试,发现lightData_C1 和 lightData[1] 这两个都没问题,那为什么在setText()这个看似简单的方法上报错呢?

原来这是Android的一种方法重载问题:

TextView的这个setText()方法,其实有两个重载方法:

setText( String )

setText( int )



如果参数是个字符串,那就和我们想当然的一样,直接把字符串作为内容展示出来;但如果是数字,那系统就会去找以这个数字为ID的资源来往TextView里面填。

到这里,问题很清楚了,上面提示找不到ID为#0x531的资源,看来是调用了setText( int ) 这个方法,把我赋给它的内容理解成了一个资源id。

然后改写一下:

lightData_C1.setText(String.valueOf(lightData[1]));把参数转换成字符串就OK了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐