今天测试给提了一个bug,说有一个弹框,上边的内容显示的是一串数字,正常应该显示指定的输出内容。
找到代码看了一下,我使用的是tv.settext(R.string.xx+"xxx") 的形式。刚开始感觉这么用没有什么问题,后来越想越不对,既然弹框显示的是一串数字,那肯定是弹框赋值的时候出问题了。仔细思考一下就会发现问题所在,R.string.xxx本身获取到的是一个id值,后面如果再加上一个字符的话肯定就直接变成字符串了。。。。。问题的本质就是,我们获取R.string字符串的姿势不正确。
找到原因了,那么怎么解决呢,正解如下:
获取R.string.xxx对应的字符串的正确姿势应该是通过getResources().getString(R.string.xxx),这种方式来获取字符串,获取到字符串之后再拼接上其他内容赋值给textview即可:
tv.settext(getResources().getString(R.string.xxx)+"xxx")