将值动态添加到 Android 中的资源字符串数组

Dynamically add values to resource string-array in Android

有没有办法动态地向 Android 资源 string-array 添加值?

例如:

    <?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="titles">
    </string-array>
</resources>

Is there a way to dynamically add values to an Android resource string-array?

否,因为资源在运行时是只读的。

是的!您可以在 Android 中创建一个静态字符串数组,但尚无法向 Android 资源动态添加值。 事实证明,在 Android 中创建和使用静态字符串数组很容易。当然,您可以在 Java 代码中执行此操作,正如我在 Java 字符串数组教程中所描述的那样,但是对于 Android,我在 XML 中谈论这样做.

简而言之,这就是在 Android XML 文件中定义静态字符串数组的方式:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="my_books">
        <item>Scala Cookbook</item>
        <item>Play Framework Recipes</item>
        <item>How I Sold My Business: A Personal Diary</item>
        <item>A Survival Guide for New Consultants</item>
    </string-array>
</resources>

然后在 Activity、片段或其他 Java class 中,您可以像这样从 XML 在 Java 中创建一个字符串数组:

Resources res = getResources();
String[] myBooks = res.getStringArray(R.array.my_books);