首页 > 解决方案 > 如何从字符串 xml (android) 中获取多个字符串

问题描述

在我的活动中,我需要从中获取一组值string.xml并将它们添加到我的 mutableList 中。像这样手动检索它们很不方便:

specArray.add(R.string.string1)
specArray.add(R.string.string2)
specArray.add(R.string.string3)
specArray.add(R.string.string4)
//...

我试图将它包装在一个循环中,结果是这样的:

var count = 0
var specArray = mutableListOf<String>()
val stringCustom = "specC"
var buffer = getString(R.string.stringCustom)
while(count <= 36) {
    specArray.add(buffer)
    buffer = getString(string)
    val specArray = mutableListOf<String>()
    count++
}

但显然它不起作用,因为我们无法指定包含stringCustom的资源路径。

标签: javaandroidkotlin

解决方案


在这种情况下,您可能需要使用String 数组

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="planets_array">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
    </string-array>
</resources>

以及在 Kotlin 中检索项目的代码:

val array: Array = resources.getStringArray(R.array.planets_array)

或 Java:

Resources res = getResources();
String[] planets = res.getStringArray(R.array.planets_array);

推荐阅读