android.content.Res.Resources $ notFoundException存在字符串资源时



我有一些字符串,这些字符串已放在我的Android项目中的Android values/strings.xml文件中。

<resources>
    <string name="level_reached_label">Level Reached: </string>
    <string name="endgame_textP1">You have scored </string>
    <string name="endgame_textP2"> points in </string>
    <string name="endgame_textP3"> seconds </string>
</resources>

我在我的Java类之一中用这条线打电话给字符串

endLevelLabel.setText(R.string.level_reached_label + level);
endInfoLabel.setText(R.string.endgame_textP1 + score + R.string.endgame_textP2 + gameTime + R.string.endgame_textP3);

第一行运行良好,但第二行给出了此错误(该程序与第二行评论一起使用):

 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.web.mathtaketwo/com.web.mathtaketwo.EndGame}: android.content.res.Resources$NotFoundException: String resource ID #0x7d1500be

我做错了什么,阻止了该字符串工作?是因为我试图在1行中使用多个字符串与变量结合使用吗?为什么另一个字符串可以很好地加载?

注意:正在设置的两个对象是TextView'S:

TextView endInfoLabel = (TextView)findViewById(R.id.endInfoLabel);
TextView endLevelLabel = (TextView)findViewById(R.id.endLevelLabel);

好吧,基本上问题是R.string.xxx仅返回字符串的ID。

当我尝试将ID(整数)插入我的字符串时,这会导致许多问题。

我应该做的是使用getString()函数,该功能在指定的ID处返回字符串:

getString(R.string.xxxx)

如果我使用getString()更改代码:

endLevelLabel.setText(getString(R.string.level_reached_label) + (level));
endInfoLabel.setText(getString(R.string.endgame_textP1) + score + getString(R.string.endgame_textP2) + gameTime + getString(R.string.endgame_textP3));

然后它可以正常工作。有关更多详细信息,请参阅我查看的这些其他主题:

从字符串资源读取值

字符串资源

从资源获取字符串

相关内容

  • 没有找到相关文章

最新更新