Java 迭代存储在strings.xml中的字符串
下面是我的Java 迭代存储在strings.xml中的字符串,java,android,arrays,string,Java,Android,Arrays,String,下面是我的strings.xml示例: <string name="intro_text_0">Hello </string> <string name="intro_text_1">World </string> <string name="intro_text_2">! </string> ..... 我的第一个想法是使用toString()在文本的其余部分附加i,但这不起作用。如何在不直接在R.string.intr
strings.xml
示例:
<string name="intro_text_0">Hello </string>
<string name="intro_text_1">World </string>
<string name="intro_text_2">! </string>
.....
我的第一个想法是使用toString()在文本的其余部分附加
i
,但这不起作用。如何在不直接在R.string.intro\u text\u 0
中输入名称的情况下遍历字符串?我的第一个建议是使用s而不是单个字符串资源的集合:
<string-array name="intro_text">
<item>Hello </item>
<item>World </item>
<item>! </item>
</string-array>
如果出于其他原因需要将简介文本数组保留为单个字符串资源,则可以在循环中检索它们,如下所示:
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);
}
Resources res=getResources();
字符串pkg=getPackageName();
对于(int i=0;i)您为什么不使用
资源而不是一堆单独的
资源?我不知道您也可以在XML中存储字符串数组。谢谢。
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);
}