2012-07-18 62 views
7

我在使用格式和多个值设置文本视图中的文本时遇到问题。Android setText/R.string/values

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

这是给我 “2143545卡梅罗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)一些其他的 “解决方案”,它仍然没有工作。

这将是巨大的,如果有人能帮助我,谢谢

+0

什么是“还是不行”的意思?你能指望什么? – Blackbelt 2012-07-18 07:32:07

+0

这是因为'R.string.mycar'是一个引用资源的int。这不是实际的资源。 @ user1417127的答案看起来不错。它为您提取实际的字符串资源 – 2012-07-18 07:32:30

+0

使用context.getResources.getString(R.string.xyx)。 – Kamal 2012-07-18 07:38:22

回答

14

试试这个

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

+0

我越来越“虚假”的字符串值... – 2012-07-18 15:54:06

+0

你是什么意思得到“假”? – user1417127 2012-07-19 01:36:17

2

你必须先检索您的资源,并呼叫的medthod的getString(INT),没有的getText ,你有没有放过。

所以,它应该是:

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

试试这个。如果你在课堂上获取字符串不延长Activity获取使用Context

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

如果你扩展Activity

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

希望这有助于你..

+0

而不是'context'我们可以写'getActivit()'吗?有没有问题 – mehmet 2014-05-08 15:11:32

+0

@mehmet这取决于你的要求。阅读[文档在这里](http://developer.android.com/reference/android/app/Fragment.html#getActivity()) – Praveenkumar 2014-05-09 04:45:36

3

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

要从你需要使用这种结构的资源得到的字符串:

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

现在myCar变量保存,放在strings.xml档案中下mycar名的字符串。

方法getResources()属于上下文。如果你的活动之外运行的代码,使用上下文实例来获取字符串,像这样:

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

R类含有一种指针,以你的ressources,所以你不能直接使用它们,使用getResources( ).getString(),正如其他人所说。

9

我想你正尝试在你的字符串中使用参数。如果你想设置你的TextView只是从你的字符串的字符串1977年

1

试试这个:

<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的新年。xml文件,

mytextview.setText(R.String.mycar); 

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

int number=5; 

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

它适用于我。谢谢。 – 2017-03-30 23:57:10