我在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年就像那样
可能是什么问题以及可能的解决方案是什么?
答案 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));