字符串资源显示不正确的值

时间:2014-12-12 09:58:52

标签: android android-resources

我在strings.xml中定义了以下字符串资源

<string name="years">Years</string>

以下两种方式我尝试使用它

showUserSelectedExperience.setText("0"+R.string.years);
showUserSelectedExperience.setText(String.valueOf(experience.getProgress())+R.string.years);

输出错误

02131361882

但正确的输出我应该得到: 0年,1年就像那样

可能是什么问题以及可能的解决方案是什么?

3 个答案:

答案 0 :(得分:3)

使用

 showUserSelectedExperience.setText("0"+getResources().getString( R.string.years));

答案 1 :(得分:2)

当您使用showUserSelectedExperience.setText(R.string.years);时,它会显示&#39;年&#39;。这是因为找到了一个整数(2131361882)并且将返回正确的字符串资源。现在,如果你使用这个字符串:"0"+R.string.years,它就像连接字符串&#34; 0&#34;用另一个String。与"Year "+1输出相同的方式&#34;第1年和第34年。整数R.string.years,其值为2131361882,被解析为具有值&#34; 2131361882&#34;的字符串。这就是你得到这个结果的原因。如此简短:setText(整数)将获取字符串资源,setText(字符串)将显示该字符串值。解决方案是先获取字符串资源,然后连接它。

String years = getString(R.string.years);
showUserSelectedExperience.setText("0"+years);

与其他答案相同。

答案 2 :(得分:1)

你应该使用这个

showUserSelectedExperience.setText("0" + getString(R.string.years));