Android setText / R.string / values

问题描述 投票:0回答:8

我无法在具有格式和多个值的文本视图中设置文本。

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)
,还是没用。

如果有人能帮助我就太好了,谢谢

android textview settext
8个回答
26
投票

试试这个

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


14
投票

我认为您正在尝试在字符串中使用参数。

试试这个:

<string name="mycar">Car: %1$s Year: %2$s</string>

String mycar = getString(R.string.mycar);
mycar = String.format(mycar, lm.getCarName(), lm.getYear());

你应该得到:

汽车:科迈罗年份:1977


6
投票

如果你想将 textview 设置为 string.xml 文件中的一个字符串,

mytextview.setText(R.String.mycar);

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

int number=5;

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

4
投票

R.string.mycar 和 R.string.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);

3
投票

试试这个。如果你在课堂上获取字符串而不扩展

Activity
使用你的
Context

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

如果你要延长

Activity

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

希望这对你有帮助..


2
投票

你必须先检索你的资源,然后调用方法 getString(int),而不是 getText,你有没有放。

所以,应该是:

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

0
投票

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


0
投票

你必须使用

context.getText(R.string.mycar);

只是。

context
是传递给适配器的活动。
它对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.