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

前端之家收集整理的这篇文章主要介绍了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相关文章