10

我在使用格式和多个值的文本视图中设置文本时遇到问题。

holder.car.setText(R.string.mycar + lm.getCarName() + R.string.year + lm.getYear());

这给了我“ 2143545 Camero 2143213 1977 ”

我从网上尝试了一些其他“解决方案”

holder.car.setText(getString(R.string.mycar) + lm.getCarName() + getString(R.string.year) + lm.getYear());  << not work, getString undefine>>

我什至试过String.valueOf(R.string.mycar); getResources().getText(R.String.mycar)了,还是不行。

如果有人可以帮助我,那就太好了,谢谢

4

7 回答 7

25

尝试这个

holder.car.setText(getResources().getString(R.string.mycar));

于 2012-07-18T07:30:50.360 回答
14

我认为您正在尝试在字符串中使用参数。

尝试这个:

<string name="mycar">Car: %1$s Year: %2$s</string>

String mycar = getString(R.string.mycar);
mycar = String.format(mycar, lm.getCarName(), lm.getYear());

你应该得到:

车:科迈罗年份:1977

于 2012-07-18T08:04:09.713 回答
5

如果您想将 textview 设置为 string.xml 文件中的字符串,

mytextview.setText(R.String.mycar);

如果你想用一些字符串或整数的组合来设置你的文本视图,(比第一种方式更好)

int number=5;

mytextview.setText(getResources().getString(R.String.mycar) + " " +number + " " + getResources().getString(R.String.mysecondcar));
于 2016-09-06T10:48:50.533 回答
4

R.string.mycar 和 R.string.year 只是资源的 ID。出于这个原因,您会得到数字(ID 是数字)。

要从资源中获取字符串,您需要使用以下构造:

String myCar = getResources().getString(R.string.mycar);

现在 myCar 变量保存了您在 mycar 名称下放入 strings.xml 文件中的字符串。

getResources() 方法属于 Context。如果您在 Activity 之外运行代码,请使用上下文实例来获取字符串,如下所示:

String myCar = context.getResources().getString(R.string.mycar);
于 2012-07-18T07:35:09.710 回答
3

尝试这个。如果您在课堂上获取字符串而不Activity使用您的扩展 GetContext

holder.car.setText(context.getResources().getString(R.string.mycar));

如果你要扩展Activity

holder.car.setText(yourActivity.this.getResources().getString(R.string.mycar));

希望这可以帮助你..

于 2012-07-18T07:34:08.667 回答
2

您必须先检索您的资源,然后调用方法 getString(int),而不是 getText,您是否已经提出。

所以,它应该是:

getResources().getString(R.String.mycar);
于 2012-07-18T07:30:59.253 回答
0

R 类包含指向您的资源的指针,因此您不能直接使用它们,如其他人所说,使用 getResources().getString()。

于 2012-07-18T08:03:50.457 回答