2010-03-07 80 views
4

我的Android应用程序中有一些XML资源。每个人都有不同的名字,如“bicycle.xml”和“car.xml”。我想知道是否有办法在运行时根据条件加载资源。有没有办法在运行时在Android中随意加载资源?

作为一个例子... 说我有我的应用程序中的文本输入。当用户输入“自行车”时,我的应用程序可以通过该名称查找XML资源,解析并加载它。而如果他们输入“汽车”,他们最终会得到来自另一个XML文件的数据。

到目前为止,我注意到要加载资源,你必须使用自动生成的“R”类,它在编译时限制你编写硬编码资源。

回答

6

我到目前为止,她注意到加载 资源,你必须使用自动生成 “R”级,这 限制你硬编码资源 在编译时。

您可以使用Resources#getIdentifier()通过运行时的名称和类型来查找资源的ID。这反映了对R类的反思,因此相对昂贵。要么不做太多,要么缓存结果。

+0

我肯定会缓存我检索的内容,并且调用只会在“加载”阶段完成,而不是在正常操作期间完成。 有没有其他方法可以建议在运行时有效加载? – 2010-03-07 23:10:27

+0

恐怕我不明白你的问题。 'getIdentifier()'不会花费几秒钟,但是对于列表中的每一行,用户可能会对其中的每一行都进行缩放(放大?),这不是您想调用的那种方式。 – CommonsWare 2010-03-07 23:20:22

相关问题