Android setText / R.string / values

时间:2012-07-18 07:28:26

标签: android textview settext

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

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),但它仍无效。

如果有人可以帮助我,那将会很棒,谢谢

7 个答案:

答案 0 :(得分:18)

试试这个

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

答案 1 :(得分:10)

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

试试这个:

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

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

你应该得到:

汽车:Camaro年份:1977

答案 2 :(得分:3)

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);

答案 3 :(得分:2)

你必须首先检索你的资源,调用方法getString(int),而不是getText,你已经放了。

所以,它应该是:

getResources().getString(R.String.mycar);

答案 4 :(得分:2)

试试这个。如果您在课程中提取字符串而未展开Activity请使用Context

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

如果您正在延长Activity

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

希望这可以帮助你..

答案 5 :(得分:1)

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

mytextview.setText(R.String.mycar);

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

int number=5;

mytextview.setText(getResources().getString(R.String.mycar) + " " +number + " " + getResources().getString(R.String.mysecondcar));

答案 6 :(得分:0)

R类包含指向你的资源的指针,所以你不能直接使用它们,使用getResources()。getString(),就像别人说的那样。