我正在构建一个Android应用程序,并且从string.xml获取资源时遇到问题。无法从android应用程序获取资源
我需要有一个URL在String.xml
,将通过应用程序多次使用。我试过Resources.getText("my_url")
,但这不起作用。 Eclipse使用这个时抱怨。
您认为这是最好的方法吗?
我正在构建一个Android应用程序,并且从string.xml获取资源时遇到问题。无法从android应用程序获取资源
我需要有一个URL在String.xml
,将通过应用程序多次使用。我试过Resources.getText("my_url")
,但这不起作用。 Eclipse使用这个时抱怨。
您认为这是最好的方法吗?
你可能想要的是:
String myUrl = getString(R.string.my_url);
的getString()
method is in Context
这意味着它可以直接在您的Activity
类,因为Activity
是Context
一个子类。 (该getString()
方法也是Resources
但它更容易直接就可以叫上你的Activity
)
与XML资源会发生什么情况是,每一个被赋予一个唯一的整数ID,这被添加到automatically generated R
class作为public static final int
。然后,您使用这些ID来引用资源。查看Eclipse项目中的gen
文件夹,您会发现里面有R
类。
您是否曾经转介此页:https://developer.android.com/guide/topics/resources/available-resources.html?
如果要检索由资源ID表示的字符串,可以调用Context.getString()
方法。
或者,您必须发布Eclipse的抱怨。
非常感谢,这是我正在使用的。问候,吕克 – Luc 2010-01-28 09:52:23
谢谢,我会检查这一点。但是,如果我想在Activity之外获得这个字符串(例如在助手类中),我可以使用GetBaseContext()。getString(key)吗? – Luc 2010-01-27 10:27:04
我不知道什么'GetBaseContext()'是我害怕的。我给每个帮助类传递一个'Context'来让他们做这样的事情。但是,当你这样做时要小心,因为如果你坚持引用上下文,你可能会非常糟糕地泄漏内存。 http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html – 2010-01-27 10:51:52
谢谢,这是一个很好的观点和一篇非常好的文章。欢呼声,Luc – Luc 2010-01-27 14:29:15