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

本文解决了Android应用中TextView设置文本时出现的“Nopackageidentifierwhengettingvalueforresourcenum0x00000000”错误。问题在于使用整数作为资源ID调用setText方法时,系统尝试查找对应字符串资源而未找到。解决方案是将整数值转换为字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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



  1. TextView quantityView = (TextView)convertView.findViewById(R.id.uploadinfo_list_item_uploadtotal);  
  2. System.out.println("quantityView: "+quantityView);  
  3. quantityView.setText(mq.getQuantity()); //该行报错  
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()转换成字符串即可。

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

 



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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值