我已经在String.xml文件中声明了近10个关于产品描述的段落。每个描述包含10-15行。我有TextView来显示所选的产品内容,我设置的内容如下。
tvProductDesc.setText(getResources().getString(selectedProduct.desc));
selectedProduct是我的对象包含所选产品,它有一个类型为integer的属性' desc'在String.xml
初始化相应的值例如: - product1.desc = R.string.prd1;
Textview显示高端模拟器中的内容,但是当在模拟器2.3.3上运行应用程序时,我得到最近几个产品的android.content.res.resources $ notfoundexception,它适用于最初的几个产品。
答案 0 :(得分:1)
setText()
有一个重载方法,它接受int
作为参数,该参数应代表字符串资源的id。
执行:product1.desc=R.string.prd1;
时,实际上使用资源ID(这是一个int)初始化product1.desc
,而不是实际的字符串。
结果getResources().getString(selectedProduct.desc)
返回int
setText()
方法,它是字符串资源的id,它试图找到它,但是没有成功并抛出ResourceNotFoundException
要解决此问题,请在初始化产品时阅读实际字符串,例如:
product1.desc=getString(R.string.prd1);
答案 1 :(得分:1)
我认为问题在于生成的String id清理你的项目并首先重建或检查特定的字符串id。
答案 2 :(得分:0)
直接探测
tvProductDesc.setText(getString(R.string.prd1));
放弃selectedProduct
对象中的任何错误。如果上面的行有效,请检查您填充该对象的方式。