在 android studio 中获取 values.xml 的大小?
Posted
技术标签:
【中文标题】在 android studio 中获取 values.xml 的大小?【英文标题】:getting the size of values.xml in android studio? 【发布时间】:2018-07-14 15:45:50 【问题描述】:我正在我的 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();或类似的东西。 有没有聪明的方法来做到这一点?我到处找了!
【问题讨论】:
您可以尝试使用getString()
没有达到 Ola 的预期?
@ArunKumar,您的评论显示了非常正确的答案。应该经常投票,并被选为正确的。如果可以的话,请用一个简短的例子来回答。
现在发表评论作为答案:-) ...谢谢
【参考方案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()));
【讨论】:
【参考方案2】:您可以用于一组元素:
<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;
【讨论】:
以上是关于在 android studio 中获取 values.xml 的大小?的主要内容,如果未能解决你的问题,请参考以下文章
Android studio 中如何批量引入图片。一大堆图片!
Android Studio Android 资源链接失败错误.. AAPT:错误:找不到资源 android:attr/lStar。在 values.xml 105