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

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

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

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

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

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