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()返回它.

相关文章

以下为个人理解,如错请评 CE: 凭据加密 (CE) 存储空间, 实际路径/data/user_ce/ DE: 设备加密 (DE) 存...
转载来源:https://blog.csdn.net/yfbdxz/article/details/114702144 用EventLog.writeEvent打的日志(或...
事件分发机制详解 一、基础知识介绍 1、经常用的事件有:MotionEvent.ACTION_DOWN,MotionEvent.ACTION...
又是好久没有写博客了,一直都比较忙,最近终于有时间沉淀和整理一下最近学到和解决的一些问题。 最近进...
Android性能优化——之控件的优化 前面讲了图像的优化,接下来分享一下控件的性能优化,这里主要是面向...
android的开源库是用来在android上显示gif图片的。我在网上查了一下,大家说这个框架写的不错,加载大的...