簡體   English   中英

Android setText / R.string / values

[英]Android setText / R.string / values

我在使用格式和多個值的文本視圖中設置文本時遇到問題。

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) String.valueOf(R.string.mycar); getResources().getText(R.String.mycar) ,但它仍無法正常工作。

如果有人可以幫助我,那將是很好的,謝謝

試試這個

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

我想你正試圖在你的字符串中使用參數。

試試這個:

<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年

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

你必須首先檢索你的資源,並調用medthod getString(int),而不是getText,你已經放了。

所以,它應該是:

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

試試這個。 如果您在類中提取字符串而不使用Context擴展Activity Get

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

如果您正在擴展Activity

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

希望這可以幫助你..

如果要將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));

R類包含指向你的資源的指針,所以你不能直接使用它們,使用getResources()。getString(),正如其他人所說。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM