从strings.xml调用的问题

时间:2011-02-18 08:10:51

标签: android string

我在调用Android中strings.xml资源的字符串值时遇到问题。 strings.xml文件位于以下位置:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="name1">contact_name1</string>
    <string name="phone1">contact_phone1</string>
</resources>

调用字符串值的代码是:

private final String NAME1  = getString(R.string.name1);
private final String PHONE1 = getString(R.string.phone1);

我正在呼叫main.javaextend Activity所在的字符串,所以我有了上下文。问题是,当我运行应用程序(物理设备(EVO)或模拟器(API级别5 - 8)时,我会在第一个NullPointerException呼叫所在的行获得getString()。我有已经通过谷歌的文档,在这里和AndDev.org上的一些帖子没有改变最终结果。有人请告诉我什么是错的,然后我把所有的头发都拿出来了!?strings.xml文件在标准位置(<project_folder><res><values>目录)与应用程序的其余部分位于同一个包中。

2 个答案:

答案 0 :(得分:6)

由于上下文不存在,您无法从getString的构造函数中调用Activity。您需要删除final关键字并在onCreate()中分配成员变量。

答案 1 :(得分:1)

在onCreate()

中使用以下行
final String NAME1  = (getResources().getString(R.string.name1));