2010-03-07 57 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

相關問題