以下是我的strings.xml
:
<string name="intro_text_0">Hello </string>
<string name="intro_text_1">World </string>
<string name="intro_text_2">! </string>
.....
我有一个EditText
字段,我想在用户按下按钮时连续显示这些字符串。我想要做的是在数组中获取这些字符串,并在用户单击按钮时通过它们进行处理。首先,我需要实际找到我需要显示的字符串......
private String introTextToShow [] = new String[textLength];
for (int i=0; i<textLength; i++)
{
// ADD the intro_string_i to the array!
introTextToShow[i] = getString(R.string."intro_text_i"); // Oops
}
我的第一个是使用toString()将i
附加到文本的其余部分,但这并不起作用。如何在不R.string.intro_text_0
?
答案 0 :(得分:1)
我的第一个建议是你使用s tring array resource而不是单个字符串资源的集合:
<string-array name="intro_text">
<item>Hello </item>
<item>World </item>
<item>! </item>
</string-array>
并在代码中:
private String introTextToShow [];
public void onCreate(@Nullable Bundle savedInstanceState) {
introTextToShow = getResources().getStringArray(R.array.intro_text);
}
如果由于其他原因需要将介绍文本数组保留为单独的字符串资源,可以按如下方式在循环中检索它们:
Resources res = getResources();
String pkg = getPackageName();
for (int i=0; i<textLength; i++) {
int resId = res.getIdentifier("intro_text_" + i, "string", pkg);
introTextToShow[i] = res.getString(resId);
}