如果这是一个简单的问题我事先道歉,但我无法找到相关的东西。
我想做什么:
让我们说我有一个字符串:我的名字是 - 变量 - 而且我变量 - 岁。我活着 - bla bla bla bla。
我如何在XML上声明这个?
对于有关此主题的更多阅读的任何指导和说明表示赞赏。
非常感谢并提前
答案 0 :(得分:2)
您可以在字符串中使用xliff注释。
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string id="foo">
My name is <xliff:g id="name" example="Andy Droid">%s</xliff:g> and I am <xliff:g id="age" example="5">%d</xliff:g> years old. I live in <xliff:g id="city" example="Paris">%s</xliff:g>. blabla
</string>
</resources>
并使用android:text="@string/foo"
Android Studio将很好地显示
我的名字是(Andy Droid),我今年(5岁)。我住在巴黎)。布拉布拉
当然,您还需要代码替换
final TextView tv = (TextView) findViewById(R.id.bar);
String name = ...;
int age = ...;
String city = ...;
tv.setText(getString(R.string.foo, name, age, city));
答案 1 :(得分:1)
您可以添加此字符串
<string name="example">My name is %s and I am %d years old. I live %s bla bla bla</string>
在strings.xml
文件中。
在您的代码中:
TextView tv = (TextView) findViewById(R.id.tv1);
String name = "";
int age = 0;
String city = "";
tv.setText(String.format(getString(R.id.example),name,age,city));
答案 2 :(得分:-1)
听起来你想以编程方式设置字符串。可能有一个更优雅的解决方案,但您可能必须单独存储每个字符串,然后将它们组合在您的代码中。
<string name="my_name_is">My name is </string>
<string name="and_i_am"> and I am </string>
<string name="years_old"> years old.</string>
并在您的代码中
String name = "Bill";
String age = "12";
String str = getString(R.id.my_name_is) + name + getString(R.id.and_i_am) + age
+ getString(R.id._years_old);
输出:&#34;我的名字是比尔,我12岁。&#34;
This answer显示了如何在xml中引用另一个字符串中的一个字符串,但我不认为这是您正在寻找的内容。