(Androidjava,JSON)为什么会丢失存储的值?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (71)

有一个名为JSONParser的类,可以找到我需要的所有必需信息,创建一个ArrayList变量并按原样填充数据。但是......如果我尝试从其他活动中获取此ArrayList,不会返回任何值...

public class JSONParser {
    ArrayList<Day> days = new ArrayList<>();

public JSONParser() {
    new getAllURLs().execute("https://...");
}

public ArrayList<Day> getDays() {
        return days;
}

public void writeout() {
        for (Day i : days) Log.e("Writeout", i.getDate());
    }
}

例如,如果我从也在这个JSONParser类中的函数调用writeout()函数,它完美地工作,我得到了Logcat中的所有日期。但是如果我在主要活动中尝试这个:

    JSONParser jsonParser = new JSONParser();
    jsonParser.writeout();

没有做任何事情......不在Logcat中写任何东西。如果我输入这个

jsonParser.writeout();

writeout();
提问于
用户回答回答于

这样试试:

public class JSONParser {
    private static JSONParser instance;

    private ArrayList<Day> days = new ArrayList<>();

    public static JSONParser getInstance(){
        if (instance == null){
            instance = new JSONParser();
        }
        return instance;
    }

    private JSONParser() {
        new getAllURLs().execute("https://...");
    }

    public ArrayList<Day> getDays() {
        return days;
    }

    public void writeout() {
        for (Day i : days) Log.e("Writeout", i.getDate());
    }
}

扫码关注云+社区

领取腾讯云代金券