gpt4 book ai didi

java - 以编程方式访问 res/raw 的内容 (Android)

转载 作者:搜寻专家 更新时间:2023-10-30 19:53:52 26 4
gpt4 key购买 nike

我正在与其他几个人一起开发一款适用于 Android 的应用程序,主要内容由我们的设计师指定为特定文件格式的文本文件,然后我们在应用程序中解析、处理和提供这些内容。我们目前将它们存储在 res/raw 中。

这对设计人员来说非常有用,因为当他们想要添加内容时,他们只需将文件添加到 res/raw。然而,作为开发人员,这很烦人,因为我们开发人员随后需要将 R.raw.the_new_file 添加到代码中的数组中,以指定在启动时要处理的文件。

有没有办法以编程方式访问 res/raw 的资源 ID?理想情况下,当应用程序启动时,我们可以调用以查看哪些文件在 res/raw 中,处理所有这些文件,这样我们就可以通过匹配 res 的内容来消除小开销/raw 与我们在代码中的数组。

我见过的最有前途的路径是 getAssets来自 Resources , 这会让我调用 list(String)AssetManager 上, 但我很难让它工作,特别是因为你不能直接调用 "res/raw" 作为你的文件路径(或者至少,当我尝试时它没有工作.

最佳答案

你可以使用反射。


ArrayList<Integer> list = new ArrayList<Integer>();
Field[] fields = R.raw.class.getFields();
for(Field f : fields)
try {
list.add(f.getInt(null));
} catch (IllegalArgumentException e) {
} catch (IllegalAccessException e) { }

在该列表之后,将所有资源 ID 保存在 res/raw 文件夹中。如果您需要资源的名称... f.getName() 返回它。

关于java - 以编程方式访问 res/raw 的内容 (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2803566/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com