android - 从android中的xml文件读取数组

标签 android android-resources

我们可以从 android 中的 xml 文件中读取字符串数组,如前所述 here .但这只能读取简单的字符串数组。

我的问题是我们可以读取包含其他类型对象的数组吗? xml文件是这样的:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array
        name="difficulty_level_names">
        <item>
            <name>IELTS</name>
            <type>1</type>
        </item>

        <item>
            <name>SAT</name>
            <type>2</type>
        </item>

        ................
        .........

    </string-array>
</resources>

更新:当然,每个项目中可以有更多参数..

最佳答案

不,按照您提供的方式。我有两个解决方案,但都不理想。

1.

您可以创建多个数组,例如用于名称的字符串数组、用于整数的整数数组等。每个对象都将存储在这些数组中的相同索引处。维护起来并不简单,但在只访问对象的一个​​属性的情况下,它可能会提高内存效率。
我在以下位置对其进行了描述:https://stackoverflow.com/a/6774856/538169

或者

2.

您可以创建一个 typed array并在数组中具有对象的属性。您可以通过以这种方式翻译索引来访问该属性:

final int PROPERTIES_COUNT_IN_OBJECT = 2;
int objectIndex   = 0; // the first element in your's example
int propertyIndex = 1; // the second property: <type>1</type>
int indexInArray  = objectIndex * PROPERTIES_COUNT_IN_OBJECT + propertyIndex;

然后从 TypedArray 中获取这个属性。

第二种解决方案更难维护。添加另一个属性将是一场噩梦。

关于android - 从android中的xml文件读取数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9158760/

相关文章:

android - 提取android中图片的exif信息

java - res/drawable/abc_ic_ab_back_material.xml Resources$NotFoundException 上的 Kitkat

android - Android 的哪一部分负责选择正确的资源配置文件?

android - 处理许多 SharedPreferences 的替代方案

android - 是否可以从外部aar库覆盖android字符串资源?

Android Javascript 应用程序比相同的浏览器内应用程序慢

java - Error Method太复杂,数据流算法无法分析

android - 无法在当前主题错误中找到样式 'bottomNavigationStyle'

android - 如何使用来自多个模块的多个dimens.xml 文件?

android - Gradle:Android Studio BuildType 资源继承