问题 可以将android资源字符串组合成新字符串吗?


Android允许创建资源字符串的别名,如:

<resources>
 <string name="foo">somestring</string>
 <string name="bar">@string/foo</string>
</resources>

资源“bar”成为名为“foo”的资源的别名。

我对我的应用程序可能会将现有资源前缀与不同的后缀组合在一起,即将其扩展为:

<resources>
 <string name="foo">foo</string>
 <string name="bar">@string/foo+bar</string> 
 <string name="else">@string/foo+else</string> 
</resources>

资源“bar”将产生字符串“foobar”。很清楚'+'在这里不起作用,但是还有其他选择来实现这样的字符串连接,这样就可以定义一堆具有公共前缀的字符串资源吗?

我当然意识到我可以在运行时进行这样的资源字符串连接,但在资源中静态地定义它们会更加优雅和简单。

迈克尔


6702
2017-08-31 22:38


起源



答案:


不,这是不可能的。 你可以使用 <string name="bar">This is my %s</string>  然后使用 String.format() 例如,在您的应用中填写变量

getResources().getString(R.string.foo);

15
2017-09-01 01:37



通过组合这些2得到的字符串将是 String.format(getResources().getString(R.string.bar), getResources().getString(R.string.foo)) - Paul


答案:


不,这是不可能的。 你可以使用 <string name="bar">This is my %s</string>  然后使用 String.format() 例如,在您的应用中填写变量

getResources().getString(R.string.foo);

15
2017-09-01 01:37



通过组合这些2得到的字符串将是 String.format(getResources().getString(R.string.bar), getResources().getString(R.string.foo)) - Paul