在 Android 中创建 XML 整数列表

发布于 2024-08-30 07:29:04 字数 391 浏览 3 评论 0原文

我想在 android 项目的 /res 文件夹中创建一个整数列表。但是,我希望这些整数指向 /res/raw 中的资源。例如,我想要这样的东西:

<?xml version="1.0" encoding="utf-8"?>
    <resources>
        <integer-array name="built_in_sounds">
            <item>@raw/sound</item>
    </integer-array>
</resources>

但是 id 看起来我不能做到这一点,有什么办法可以做到这一点吗?或者我应该在 java 类中创建列表?

谢谢

I would like to create a list of Integers in the /res folder of an android project. However, I want those integers to point resources in /res/raw. So for example, I would like something like this:

<?xml version="1.0" encoding="utf-8"?>
    <resources>
        <integer-array name="built_in_sounds">
            <item>@raw/sound</item>
    </integer-array>
</resources>

But id doesn't look like I can do that, is there any way to do this? Or should I just create the list in a java class?

Thank you

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

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

发布评论

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

评论(3

明天过后 2024-09-06 07:29:04

正确的答案实际上是 TypedArray

文档显示资源列表的示例:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array name="icons">
        <item>@drawable/home</item>
        <item>@drawable/settings</item>
        <item>@drawable/logout</item>
    </array>
    <array name="colors">
        <item>#FFFF0000</item>
        <item>#FF00FF00</item>
        <item>#FF0000FF</item>
    </array>
</resources>

以及检索值的代码:

Resources res = getResources();
TypedArray icons = res.obtainTypedArray(R.array.icons);
Drawable drawable = icons.getDrawable(0);

TypedArray colors = res.obtainTypedArray(R.array.icons);
int color = colors.getColor(0,0);

And the correct answer is actually, TypedArray

The documentation shows examples of lists of resources:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array name="icons">
        <item>@drawable/home</item>
        <item>@drawable/settings</item>
        <item>@drawable/logout</item>
    </array>
    <array name="colors">
        <item>#FFFF0000</item>
        <item>#FF00FF00</item>
        <item>#FF0000FF</item>
    </array>
</resources>

And the code to retrieve the values:

Resources res = getResources();
TypedArray icons = res.obtainTypedArray(R.array.icons);
Drawable drawable = icons.getDrawable(0);

TypedArray colors = res.obtainTypedArray(R.array.icons);
int color = colors.getColor(0,0);
儭儭莪哋寶赑 2024-09-06 07:29:04

好吧,我终于知道如何做到这一点了。我所做的只是创建一个数据库。数据库存储了我需要存储的所有原语,以及指向我需要引用的对象的指针。显然 android SDK 附带了对 SQLite 的支持。

Okay, I finally found out how to do this. What I did, was just create a database. The database stored all of the primitives I needed to store, and than pointers to the objects that I needed to reference. Apparently the android SDK comes with support for SQLite.

无声静候 2024-09-06 07:29:04

要在不使用数据库的情况下在 XML 中执行此操作,请参阅:
http://developer.android.com/guide/topics/资源/more-resources.html#Integer

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