gpt4 book ai didi

android - 使用 strings.xml 中的字符串数组填充字符串 [] 时出现问题

转载 作者:搜寻专家 更新时间:2023-11-01 07:39:13 26 4
gpt4 key购买 nike

编辑:哇......我用我问的另一个问题替换了这个问题,很高兴有这个回滚功能

这个具体问题涉及我的 previous question 中的 setter/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)

最佳答案

我知道这是糟糕的编码,提前致歉。所以为了解决这个问题,我搬家了

String[] impactsn;
impactsn = getResources().getStringArray(R.array.impacts);

到我的主要 Activity 并使其静态化。现在我在我的 Impacts 类中将它称为 (MainActivity).impactsn[]

我知道这不是你应该如何在类之间共享对象,但它似乎是迄今为止最简单的方法。这也是我对将所有选项卡分开 Activity 的决定感到遗憾的另一个原因。如果您对如何在不使用静态引用的情况下修复此代码或为什么我的所有选项卡都应该是相同的 Activity 有任何建议或意见,请插话。

关于android - 使用 strings.xml 中的字符串数组填充字符串 [] 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6230466/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com