2010-01-27 29 views
5

我正在構建一個Android應用程序,並且從string.xml獲取資源時遇到問題。無法從android應用程序獲取資源

我需要有一個URL在String.xml,將通過應用程序多次使用。我試過Resources.getText("my_url"),但這不起作用。 Eclipse使用這個時抱怨。

您認爲這是最好的方法嗎?

回答

12

你可能想要的是:

String myUrl = getString(R.string.my_url); 

getString() method is in Context這意味着它可以直接在您的Activity類,因爲ActivityContext一個子類。 (該getString()方法也是Resources但它更容易直接就可以叫上你的Activity

與XML資源會發生什麼情況是,每一個被賦予一個唯一的整數ID,這被添加到automatically generated R class作爲public static final int 。然後,您使用這些ID來引用資源。查看Eclipse項目中的gen文件夾,您會發現裏面有R類。

+0

謝謝,我會檢查這一點。但是,如果我想在Activity之外獲得這個字符串(例如在助手類中),我可以使用GetBaseContext()。getString(key)嗎? – Luc 2010-01-27 10:27:04

+2

我不知道什麼'GetBaseContext()'是我害怕的。我給每個幫助類傳遞一個'Context'來讓他們做這樣的事情。但是,當你這樣做時要小心,因爲如果你堅持引用上下文,你可能會非常糟糕地泄漏內存。 http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html – 2010-01-27 10:51:52

+0

謝謝,這是一個很好的觀點和一篇非常好的文章。歡呼聲,Luc – Luc 2010-01-27 14:29:15

相關問題