Android设置文本/ R.字符串/值

iyfamqjs  于 2023-03-21  发布在  Android
关注(0)|答案(8)|浏览(159)

在具有格式和多个值的文本视图中设置文本时遇到问题。

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),仍然没有工作。
如果有人能帮我就太好了,谢谢

laik7k3q

laik7k3q1#

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

krcsximq

krcsximq2#

我认为你试图在字符串中使用参数。
试试这个:

<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

f3temu5u

f3temu5u3#

如果您想将文本视图设置为string.xml文件中的字符串,

mytextview.setText(R.String.mycar);

如果你想用一些字符串或整数的组合来设置你的文本视图,(比第一种方法更好)

int number=5;

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

ckx4rj1h4#

字符串.mycar和字符串.year只是资源的ID,因此你得到的是数字(ID是数字)。
要从资源中获取字符串,需要使用以下构造:

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

现在myCar变量保存了您放入strings.xml文件中的字符串,该字符串位于mycar名称下。
getResources()方法属于Context。如果在Activity外部运行代码,请使用上下文示例获取字符串,如下所示:

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

zd287kbt5#

如果你在类中读取字符串而不扩展Activity,那么使用你的Context

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

如果要扩展Activity

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

希望这对你有帮助。

ergxz8rk

ergxz8rk6#

您必须首先检索资源,并且调用方法getString(int),而不是getText。
所以,应该是:

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

qgelzfjb7#

R类包含指向资源的指针,因此不能直接使用它们,如其他人所说,使用getResources().getString()。

hiz5n14c

hiz5n14c8#

你必须使用

context.getText(R.string.mycar);

公正。
context是传递给适配器的活动。
对我很有效。

相关问题