当前位置: 首页 > 面试题库 >

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

海灵均
2023-03-14
问题内容

我正在与其他一些人一起为Android开发一个应用程序,我们的设计师将主要内容指定为某种文件格式的文本文件,然后我们对其进行解析,处理和提供服务。我们目前将它们存储在中res/raw

这对设计人员来说意义非凡,因为当他们想要添加内容时,他们只需向中添加文件即可res/raw。但是,这对于开发人员来说很烦人,因为我们开发人员需要R.raw.the_new_file在代码中添加一个数组,以指定在启动时要处理的文件。

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


我见过的最有希望的路径是getAssets从资源,这将让我叫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()返回它。



 类似资料:
  • 问题内容: 我的资源文件中有很多字符串数组,我想根据用户输入以编程方式访问它们。 因此,如果c == 12,则info应该是名称为“ n_12”的字符串数组。有没有办法做到这一点,并且避免对数百种情况进行switch语句? 谢谢 问题答案: 您可以像这样获取资源ID 然后只需使用该ID 在这里看看有关的另一个示例。

  • 问题内容: 我正在建立一个在线订购系统,但我在澳大利亚,对于国际客户,我想以美元或欧元显示价格,这样他们就不必花心思从澳元转换。 有谁知道我是否可以通过PHP脚本访问的易于解析的格式从网上提取最新汇率? 问题答案: 您可以从yahoo以简单的格式获取货币换算: 例如,将GBP转换为EUR:

  • 如何从android SDK以编程方式访问KNOX计数器? 我想让我的应用程序检查值,以尝试并确定它是否运行在已扎根的三星手机上。

  • 问题内容: 有一个网页,我想从中检索某个字符串。为此,我需要登录,单击一些按钮,填充文本框,单击另一个按钮-然后出现字符串。 如何编写Java程序以自动执行此操作?是否有用于此目的的有用库? 谢谢 问题答案: 试试HtmlUnit HtmlUnit是“用于Java程序的GUI更少的浏览器”。它为HTML文档建模,并提供一个API,使您可以调用页面,填写表单,单击链接等,就像在“常规”浏览器中一样。

  • 问题内容: 我正在寻找示例Java JMX代码以从另一个VM访问JMX属性的值。 使用JConsole,我可以毫无疑问地查看java.lang / Memory / Attributes / HeapMemory 我如何从VM中运行的Java程序中获得相同的信息? 需要任何命令行选项或其他需要启动的示例。 问题答案: 您需要设置一个JMXConnector。这是一个代码片段,它将获取远程计算机上已