这是通过编程方式在TextView
中设置文本的正确方法吗?
points_txt.setText(R.string.you_have + current_points + R.string.points);`
它向我显示了该字符串的ResourcesNotFoundFound错误,同时我可以在strings.xml文件中看到该字符串。
答案 0 :(得分:3)
points_txt.setText(getResources().getString(R.string.you_have) + current_points + getResources().getString(R.string.points));
答案 1 :(得分:1)
之所以会得到ResourcesNotFoundException
,是因为您要添加int
值(在编译时将资源标识符映射到int
值),而不是串联String
。
各种资源标识符的总和甚至可能是另一个有效的资源标识符,但这只会偶然发生。但是,如果将int
值传递给setText()
,则运行时将尝试通过该数字查找字符串资源。就您而言,它失败了,因此您的应用程序崩溃了。
因此,您必须先获取String
,然后再将其连接:
points_txt.setText(getString(R.string.you_have) + current_points + getString(R.string.points));
答案 2 :(得分:1)
points_txt.setText(R.string.you_have + current_points + R.string.points);
这显示“ ResourcesNotFoundException”,因为“ R.string.you_have”是整数值,“ current_point”变量也是int类型
setText()
需要String类型...
要获取字符串值“ R.string.you_have”,您可以使用
getResources().getString(R.string.you_have);
points_txt.setText(getResources().getString(R.string.you_have) + current_points + getResources().getString(R.string.points));
答案 3 :(得分:0)
要从strings.xml
中获取字符串,请执行以下操作:
String you_have = getResources().getString(R.string.you_have);
答案 4 :(得分:0)
您快到了,但是我觉得可能落后了几个步骤,但是由于您尚未共享所有代码,因此不确定。
您需要先在Java类和XML之间连接TextView
TextView tv1 = (TextView)findViewById(R.i.d.textView1)
下一步是为textview设置字符串
tv1.setText(getResources().getString(R.string.you_have) + "current_points" + getResources().getString(R.string.points));
在分配硬编码字符串时,您基本上缺少了必需的“”标记。
答案 5 :(得分:0)
您必须首先将资源解析为字符串:
String string = getString(R.string.yourString);
有关此的更多信息: how to read value from string.xml in android?
因此,对您的问题的回答将如下所示:
String you_have = getString(R.string.you_have);
String points = getString(R.string.points);
points_txt.setText(you_have + current_points + points);