通常,我使用以下方法从资源 XML 中获取字符串值:
String mystring = getResources().getString(R.string.mystring);
现在,我想根据一些运行时条件选择字符串的替代版本。
String selectivestring;
if (someBooleanCondition)
selectivestring= getResources().getString(R.string.mystring);
else
selectivestring= getResources().getString(R.string.theirstring);
到目前为止一切都很好,但是由于我有很多这样的“替代字符串对”,我想有条不紊地为一种类型(比如,“my_”)和替代类型(比如,“alt_”)添加前缀:
String selectivestring1;
if (someBooleanCondition)
selectivestring1= getResources().getString(R.string.my_string1);
else
selectivestring1= getResources().getString(R.string.alt_string1);
.
.
.
String selectivestring2;
if (someBooleanCondition)
selectivestring2= getResources().getString(R.string.my_string2);
else
selectivestring2= getResources().getString(R.string.alt_string2);
(上面的代码仅用于说明。我最终要做的是对其进行参数化,以便我可以将其放入循环、数组或自己的访问器中)
如果 Java 中有预处理器,我可以使用字符串连接来选择“my_”与“alt_”前缀。但既然我知道没有,有没有办法、解决方法或建议在运行时修改字符串资源标识符,如上所述?
注意:每个字符串的替代版本没有不同的语言/区域设置。我基本上试图将字符串的原始版本和替代版本放在一起,彼此相邻,在同一个资源文件中,以便我可以轻松地比较两者。