从android中的xml文件读取数组

发布于 2025-01-02 10:29:35 字数 770 浏览 1 评论 0原文

我们可以从 android 中的 xml 文件读取字符串数组,就像这里提到的< /a>.但这只能读取简单的字符串数组。

我的问题是我们可以读取包含其他类型对象的数组吗? 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>

UPDATE:当然,每一项可以有更多的参数。

We can read a string array from xml file in android like mentioned here. But this can only read simple string array.

My question is that can we read array containing some other type of objects. xml file is like this:

<?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>

UPDATE: Of course, there can be more parameters in each item..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

戏蝶舞 2025-01-09 10:29:35

不,按照你提供的方式。我脑子里有两种解决方案,但都不理想。

1.

您可以创建多个数组,例如名称的字符串数组、整数的整数数组等。每个对象都将存储在这些数组中的相同索引处。它维护起来并不简单,但在仅访问对象的一个​​属性的情况下,它可能会更有效地存储内存。
我在: https://stackoverflow.com/a/6774856/538169

或者

2.

您可以创建一个 < a href="http://developer.android.com/guide/topics/resources/more-resources.html#TypedArray" rel="nofollow noreferrer">键入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 获取该属性。

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

No, in the way you provided. I have two solutions on my mind, and both not ideal.

1.

You can create multiple arrays, for example string-array for names, integer-array for integer etc. Every object would be stored in those arrays at the same index. It's not simple to maintain but it may be more memory efficient in case of accesing only one property from object.
I described it in: https://stackoverflow.com/a/6774856/538169

Or

2.

You can create one typed array and have object's properties in the array. You could access the property through translating the index in such way:

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;

Then get this property from TypedArray.

The second solution is much worse to maintain. Adding another property would be a nightmare.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文