我正在我的android类中执行任务,在我的values文件夹中,我创建了一个名为“values.xml”的文件,并在其中放置了一些随机字符串:
<string name="name1">John</string>
<string name="name2">Jane</string>
<string name="name3">Andre</string>
在我的java文件中,我想获得一个随机字符串,但我希望这是基于values.xml的大小
Random random = new Random();
String randomString = getResources().getString(random.nextInt(3));
textView.setText(randomString);
这会创建并提取一个随机字符串,而不是
random.nextInt(3);
我想要它来获取values.xml.size();或类似的东西。 有一种聪明的方法吗?我到处搜寻了!
答案 0 :(得分:1)
您可以使用反射来获取XML值文件中的所有字符串:
Field[] fields = R.string.class.getFields();
//fields.length would be the count of all the string in your xml file
int rand = random.nextInt(fields.length)
String randomText = getResources().getString(fields[rand].getName()));
答案 1 :(得分:1)
您可以使用一组元素:
<string-array name="name_array">
<item>John</item>
<item>Jane</item>
<item>Andre</item>
</string-array>
您可以使用以下代码在运行时获取数组大小:
int size = getResources().getStringArray(R.array.data_array).length;