微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 以程序方式(Android)编写res / raw的内容

我正在和一些其他人一起使用 Android的应用程序,主要内容由我们的设计人员以特定文件格式指定为文本文件,然后我们在应用程序中进行解析,处理和提供.我们目前正在将其存储在res / raw中.

这对设计师来说非常棒,因为当他们想要添加内容时,他们只需将文件添加到res / raw中即可.这是开发人员烦人的,但是,由于开发人员需要将R.raw.the_new_file添加代码中的数组中,以指定在启动时要处理哪些文件.

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

我看到的最有希望的路径是从Resources开始的getAssets,这可以让我在AssetManager上打list(String),但我遇到麻烦让这个工作,特别是因为你不能直接调用“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()返回它.

原文地址:https://www.jb51.cc/android/126756.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐