[英]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.