textView和XML声明中的多个变量

时间:2014-11-12 14:57:38

标签: android xml textview

如果这是一个简单的问题我事先道歉,但我无法找到相关的东西。

我想做什么:

让我们说我有一个字符串:我的名字是 - 变量 - 而且我变量 - 岁。我活着 - bla bla bla bla。

我如何在XML上声明这个?

对于有关此主题的更多阅读的任何指导和说明表示赞赏。

非常感谢并提前

3 个答案:

答案 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中引用另一个字符串中的一个字符串,但我不认为这是您正在寻找的内容。