2010-01-27 67 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