有没有办法在Android中在运行时任意加载资源?

时间:2010-03-07 22:30:33

标签: java xml android resources runtime

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

举个例子...... 说我的应用程序中有文本输入。当用户输入“bicycle”时,我的应用程序可以按该名称查找XML资源,解析并加载它。然而,如果他们输入“car”,他们最终会得到来自其他XML文件的数据。

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

1 个答案:

答案 0 :(得分:7)

  

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

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