为什么TextView无法显示从android资源引用的格式化文本?

时间:2019-04-19 07:29:55

标签: java android android-resources string.xml

我正在尝试显示我在TextView中设置的文本。我已经在strings.xml中分配了一个名称为 operator_mixed

的字符串

Strings.xml

<string name="operator_mixed">%d  %s %d  %s %d</string>

并且在我的initialize.java文件中,我尝试引用此字符串,但未显示任何内容。但是,当我尝试不使用任何格式显示文本时,它还是可以的,但是我知道在textview中连接字符串不是可取的

Initialize.java

textview.setText(getString(R.string.operator_mixed, a1, operator1, a2, operator2, a3));

其中a1,a2,a3是整数,而operator1,operator2是字符串。

我的代码有问题吗?

3 个答案:

答案 0 :(得分:0)

尝试以下

<string name="operator_mixed">%d  %s %d  %s %d</string>
 
textview.setText(String.format(getString(R.string.operator_mixed),a1,operator1,a2,operator2,a3)));

您必须使用String.format()

答案 1 :(得分:0)

我刚刚在我的应用中尝试了此代码。

string.xml :(与您的相同)

<string name="operator_mixed">%d  %s %d  %s %d</string>

MyActivity.java

int a1 = 10;
int a2 = 20;
int a3 = 30;
String operator1 = "Operator 1";
String operator2 = "Operator 2";

my_txt_title.setText(getResources().getString(R.string.operator_mixed, a1, operator1, a2, operator2, a3));

一切正常。

enter image description here

答案 2 :(得分:0)

我知道了。我只需要传递这样的上下文:

textview.setText(c.getResources().getString(R.string.operator_mixed, a1, operator1, a2, operator2, a3))

这里c是MainActivity的上下文。