如何在Java Android Studio中使用字符串资源?

4

我遇到了一个问题,Android Studio 提醒我使用 string.xml 来设置文本。以下是提示信息:不要通过 setText 连接显示的文本。使用带有占位符的资源字符串。

public int points = 0;
public TextView tv_points;
tv_points.setText("Points: " + points);

好的,如果我使用这段代码中的字符串xml,它不会达到我的预期:

<string name="points_string">Points: </string>    

public int points = 0;
public TextView tv_points;
tv_points.setText((R.string.points_string) + points);

它没有错误和提示,但是是错误的。我没有得到设置点所需的效果。

2
使用此代码 tv_points.setText(getString(R.string.points_string).concat(String.valueOf(points))); - Deepak Goyal
String.format(""); 也可以用于这种情况。 - vikas kumar
你不使用连接符的原因是“points: 9”可能不是每种语言都能正确表达。你希望翻译人员能够根据需要进行修改,这可能包括移动元素。虽然这更适用于文本而不是标签,但在这里仍然有意义。 - Gabe Sechan
1个回答

7

您需要使用 strings.xml 格式化字符串,格式如下:

<string name="points_string">积分: %1$d</string>

之后,您可以这样使用:

tv_points.setText(getResources().getString(R.string.points_string, points));


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接