Как добавить ArrayList объекта в SharedPreferences

Я создал ArrayList, который содержит объект класса. После завершения вставки всех объектов в этот список массивов, как вставить этот список в общую настройку?

Модельный класс:

public class Weather {
    private double minTemp, maxTemp, humidity, windSpeed;
    private String date, desc;

    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }

    public String getDesc() {
        return desc;
    }
    public void setDesc(String desc) {
        this.desc = desc;
    }

    public double getMinTemp() {
        return minTemp;
    }
    public void setMinTemp(double minTemp) {
        this.minTemp = minTemp;
    }

    public double getMaxTemp() {
        return maxTemp;
    }
    public void setMaxTemp(double maxTemp) {
        this.maxTemp = maxTemp;
    }

    public double getHumidity() {
        return humidity;
    }
    public void setHumidity(double humidity) {
        this.humidity = humidity;
    }

    public double getWindSpeed() {
        return windSpeed;
    }
    public void setWindSpeed(double windSpeed) {
        this.windSpeed = windSpeed;
    }
}

Создание ArrayList:

ArrayList<Weather> weatherArr = new ArrayList<Weather>();

for(....){
  Weather weather = new Weather();
  weather.setDate(date);
  weather.setDesc(description);
  weather.setMinTemp(minTemp);
  weather.setMaxTemp(maxTemp);
  weather.setHumidity(humidity);
  weather.setWindSpeed(windSpeed);
  weatherArr.add(weather);
}

Мои общие предпочтения:

SharedPreferences weatherSharedpreferences = weatherSharedpreferences = getSharedPreferences(WeatherPREFERENCES, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = weatherSharedpreferences.edit();

Теперь, как вставить этот ArrayList(weatherArr) в SharedPreferences(weatherSharedpreferences)?

1 ответ

У меня есть трюк для тебя. Добавьте Gson в ваши зависимости.

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.google.code.gson:gson:2.2.4'
}

Преобразуйте ваш объект в Json и сохраните в SharedPrefs в виде строки.

String data = new Gson().toJson(weatherArr)

Преобразуйте его обратно из строки, когда вам это нужно.

List<Weather> data = new Gson(stringData, new TypeToken<List<Weather>>(){}.getType()).
Другие вопросы по тегам