以编程方式在TextView中设置文本的正确方法

时间:2018-07-18 19:27:44

标签: java android string

这是通过编程方式在TextView中设置文本的正确方法吗?

points_txt.setText(R.string.you_have + current_points + R.string.points);`

它向我显示了该字符串的ResourcesNotFoundFound错误,同时我可以在strings.xml文件中看到该字符串。

6 个答案:

答案 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);