No package identifier when getting value for resource num 0x00000000 【安卓资源找不到】

安卓应用中报错:No package identifier when getting value for resource num 0x00000000



TextView quantityView = (TextView)convertView.findViewById(R.id.uploadinfo_list_item_uploadtotal);
System.out.println("quantityView: "+quantityView);
quantityView.setText(mq.getQuantity()); //该行报错

报错的地方为: quantityView.setText(mq.getQuantity()) 这一句,注意,没有报NullPointer,quantityView这个变量本身没问题。那问题就出在 mq.getQuantity() 这里。

那就奇怪了,不就是设置一下TextView的文本内容吗?和引用资源有啥关系?

谜底解开,这里就是安卓平台的特色之一了:资源引用。

setText方法有多个实现,例如:

setText( CharSequence  text ),文本

setText( int id ),数字,也就是id

好了,就是这第二种情况,mq.getQuantity()返回的是一个数量,是整数,所以setText()方法就理解为把这个整数当成一个id去引用它所对应的字符串资源,所以当然是找不到的。

到了这里,解决方法也就呼之欲出了,就是把mq.getQuantity()转换成字符串即可。

quantityView.setText(String.valueOf(mq.getQuantity()));


No package identifier when getting value for resource num 0x00000000 【安卓资源找不到】_第1张图片

问题解决!用整数id引用字符串资源,安卓特色之一,要记住。

你可能感兴趣的:(No package identifier when getting value for resource num 0x00000000 【安卓资源找不到】)