如果这是一个简单的问题,我事先道歉,但我找不到相关的问题。
我想做的事:
假设我有一个字符串:我的名字是-variable,我是-variable-岁。我的生活是多变的。
如何在XML上声明这一点?
如有更多关于本主题的阅读指南和指示,我们将不胜感激。
非常感谢,提前
您可以在字符串中使用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"
布局中的参考
安卓工作室将很好地显示
我的名字叫(Andy Droid),今年5岁。我住在(巴黎)。blabla
当然,你还需要一个代码替换
final TextView tv = (TextView) findViewById(R.id.bar);
String name = ...;
int age = ...;
String city = ...;
tv.setText(getString(R.string.foo, name, age, city));
您可以添加此字符串
<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));
听起来好像您想要以编程方式设置字符串。可能有一个更优雅的解决方案,但您可能必须单独存储每个字符串,然后将它们组合到代码中。
<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);
输出:"我叫比尔,今年12岁。"
这个答案展示了如何在xml中从另一个字符串引用一个字符串,但我不认为这是您想要的。