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

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...