【发布时间】:2011-09-07 23:56:24
【问题描述】:
编辑:哇...不知何故我用另一个我问的问题替换了这个问题,很高兴有这个回滚功能
这个具体问题涉及来自我的previous question的getter
public class Impacts extends Activity implements View.OnClickListener
{
boolean[] impactsb = new boolean[] {false, false, false, false, false, false, false, false}-
public void onCreate (Bundle savedInstanceState)
{
super.onCreate(savedInstanceState)
...
String getImpacts ()
{
String[] impactsn = new String[length];
Resources myResources = this.getResources();
impactsn = myResources.getStringArray(R.array.impacts);
StringBuilder impactss = new StringBuilder();
for (int i = 0; i < length; i ++)
{
if (impactsb[i])
impactss.append(impactsn[i] + " | ");
}
if (String.valueOf(impactss) != "")
impactss.insert(0, "Impacts: ");
return String.valueOf(impactss);
}
出现以下错误:
Impacts(ContextWrapper).getResources() line: 80
Impacts.getImpacts() line: 78
以下代码的最后一个括号:
@Override
public Resources getResources()
{
return mBase.getResources();
}
和这行代码分别:
impactsn = getResources().getStringArray(R.array.impacts);
这是我的 strings.xml(无论如何都是相关部分)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="impacts">
<item>GasOilChemical Pollutants</item>
<item>Ghost Fishing</item>
<item>Marsh Damage</item>
<item>Navigational Hazard</item>
<item>Shellfish Damage</item>
<item>Waste Pollution</item>
<item>Wildlife Entanglement</item>
<item>Other</item>
</string-array>
</resources>
我最初的第一项是:
<item>Gas/Oil/Chemical Pollutants</item>
但修复了这个问题,希望如果不解决问题,至少会改变错误。但不,同样的错误。任何帮助将不胜感激,我对数组的使用并不十分熟悉,尤其是获取数组的资源。
Logcat 异常:
06-05 23:02:30.792: ERROR/AndroidRuntime(3905): FATAL EXCEPTION: main
06-05 23:02:30.792: ERROR/AndroidRuntime(3905): java.lang.NullPointerException
06-05 23:02:30.792: ERROR/AndroidRuntime(3905): at android.content.ContextWrapper.getResources(ContextWrapper.java:80)
06-05 23:02:30.792: ERROR/AndroidRuntime(3905): at com.citsci.mardeb.Impacts.getImpacts(Impacts.java:79)
【问题讨论】:
-
@hooraygradschool:getImpacts() 方法是 Activity 还是助手类的一部分?
-
它是扩展活动的类的一部分,我将其添加到顶部以响应您的评论。
-
@hooraygradschool:好的,如果它是影响活动的一种方法,那么为什么要覆盖 getResources()?仅使用 getResources() 应该可以正常工作 - 尝试注释掉您覆盖的 getResources() 方法。
-
哦,不,我看到你的困惑,overide 和那个块与
Impacts(ContextWrapper).getResources() line: 80一起使用,这不是我的代码的一部分,它不是平台或源代码的一部分或其他任何东西。抱歉,我不明白您的问题/将代码粘贴到此处时出错。 -
@hooraygradschool:好的,我现在明白了——我可以在 ContextWrapper 源代码中看到这一点。尝试将您的代码行分成两行以查看导致失败的原因,即 Resources myResources = getResources(); Impactn = myResources.getStringArray(R.array.impacts);
标签: android arrays string resources