在android studio中获取values.xml的大小?

时间:2018-02-04 18:20:00

标签: android xml string android-studio random

我正在我的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();或类似的东西。 有一种聪明的方法吗?我到处搜寻了!

2 个答案:

答案 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;