2012-07-18 49 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