В настоящее время у меня есть приложение, которое отслеживает местоположение пользователя и рисует маршрут, используя полилинии и маркеры карт. Мне нужно добавить arraylist, который содержит координаты LatLng, в другой список массивов, который хранит все маршрутов, , т. е. latlng arraylist - это один маршрут, поэтому мне нужно сохранить все маршруты в одном arraylist и сохранить его в общих предпочтениях, чтобы я мог загружать все маршруты, которые пользователь взял на карту. То, что я до сих пор хранит только один маршрут для общих настроек и перезаписывает его каждый раз, когда добавляется новый маршрут.Хранение нескольких экземпляров Arraylist <LatLng> для общих настроек
Вот что я до сих пор эти 2 класса сохранить LatLng данные
public void addToJSONArray(JSONArray array, LatLng item) throws Exception {
JSONObject data = new JSONObject();
data.put("latitude", item.latitude);
data.put("longitude", item.longitude);
array.put(data);
}
public void saveJourney(Context context, JSONArray saveData) {
SharedPreferences storeAllRoutes = context.getSharedPreferences("STORED_ROUTES", context.MODE_PRIVATE);
Editor editor = storeAllRoutes.edit();
editor.putString("saveData",saveData.toString());
editor.commit();
}
и эти 2 классов получить данные
public JSONArray getData(Context context) throws Exception{
SharedPreferences storeAllRoutes = context.getSharedPreferences("STORED_ROUTES", context.MODE_PRIVATE);
if(storeAllRoutes.contains("saveData")) {
return new JSONArray(storeAllRoutes.getString("saveData", ""));
} else {
return new JSONArray();
}
}
public void parseJSONArray(JSONArray array) throws Exception {
for(int i = 0; i < array.length(); ++i) {
JSONObject item1 = array.getJSONObject(i);
LatLng location = new LatLng(item1.getDouble("latitude"), item1.getDouble("longitude"));
mMap.addMarker(new MarkerOptions().position(location).title("Start"));
}
}
возможно дубликат [Как сохранить ArrayList с SharedPreferences] (http://stackoverflow.com/questions/23511821/how-to-save-an-arraylistlatlng-with-sharedpreferences) –
Kunu
@Kunu, что ответ описывает, как сохранить одного arraylist, я смотрю на сохранение нескольких массивов, которые могут быть извлечено – MichaelStoddart
Вы можете использовать конкатенацию String с помощью специального символа в соответствии с вашим требованием и извлечь его, когда вам это нужно. – Kunu