我在调用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.java
我extend Activity
所在的字符串,所以我有了上下文。问题是,当我运行应用程序(物理设备(EVO)或模拟器(API级别5 - 8)时,我会在第一个NullPointerException
呼叫所在的行获得getString()
。我有已经通过谷歌的文档,在这里和AndDev.org上的一些帖子没有改变最终结果。有人请告诉我什么是错的,然后我把所有的头发都拿出来了!?strings.xml
文件在标准位置(<project_folder><res><values>
目录)与应用程序的其余部分位于同一个包中。
答案 0 :(得分:6)
由于上下文不存在,您无法从getString
的构造函数中调用Activity
。您需要删除final
关键字并在onCreate()
中分配成员变量。
答案 1 :(得分:1)
在onCreate()
中使用以下行final String NAME1 = (getResources().getString(R.string.name1));