我的Android应用中有一些XML资源。每个人都有一个不同的名字,如“bicycle.xml”和“car.xml”。我想知道是否有办法在运行时根据条件加载资源。
举个例子...... 说我的应用程序中有文本输入。当用户输入“bicycle”时,我的应用程序可以按该名称查找XML资源,解析并加载它。然而,如果他们输入“car”,他们最终会得到来自其他XML文件的数据。
到目前为止,我注意到要加载资源,你必须使用自动生成的“R”类,这会限制你在编译时对资源进行硬编码。
答案 0 :(得分:7)
到目前为止,我注意到要加载 资源,你必须使用 自动生成“R”类,其中 限制您使用硬编码资源 在编译时。
您可以使用Resources#getIdentifier()
在运行时按名称和类型查找资源的ID。这使用针对R类的反射,因此相对昂贵。要么不做太多,要么缓存结果。