模拟器2.3.3上的Android奇怪资源$ notfoundexception

时间:2014-05-29 07:18:50

标签: android string resources

我已经在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,它适用于最初的几个产品。

3 个答案:

答案 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对象中的任何错误。如果上面的行有效,请检查您填充该对象的方式。