I want to save a location with shared preferences
as I can not save objects I only save the latitude and longitude, I transform it into string I save them and then I take them out and transform them into double back to load them to the location variables I had but I miss error and I can not fix it.
This is the method to load the preferences which I call from oncreate
:
public void cargarpreferencias(){
SharedPreferences preferences = getSharedPreferences("localizaciones", Context.MODE_PRIVATE);
String latcasastr = preferences.getString("latcasa","a");
double latitudcasa=Double.parseDouble(latcasastr);
String longcasastr = preferences.getString("longcasa",null);
double longitudcasa=Double.parseDouble(longcasastr);
String lattrabajostr = preferences.getString("lattrabajo",null);
double latitudrabajo=Double.parseDouble(lattrabajostr);
String longtrabajostr = preferences.getString("longtrabajo",null);
double longitudtrabajo=Double.parseDouble(longtrabajostr);
String latfacultadstr = preferences.getString("latfacultad",null);
double latitudfacultad=Double.parseDouble(latfacultadstr);
String longfacultadstr = preferences.getString("longfacultad",null);
double longitudfacultad=Double.parseDouble(longfacultadstr);
loccasa.setLatitude(latitudcasa);
loctrabajo.setLatitude(latitudrabajo);
locfacultad.setLatitude(latitudfacultad);
loccasa.setLongitude(longitudcasa);
loctrabajo.setLongitude(longitudtrabajo);
locfacultad.setLongitude(longitudfacultad);
}
This is the code I use to save the preferences that would be working well:
public void guardarpreferencias() {
SharedPreferences preferences = getSharedPreferences("localizaciones", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
String latcasastr = String.valueOf(latcasa);
editor.putString("latcasa",latcasastr);
String longcasastr = String.valueOf(longcasa);
editor.putString("longcasa",longcasastr);
String lattrabajostr = String.valueOf(latrabajo);
editor.putString("lattrabajo",lattrabajostr);
String longtrabajostr = String.valueOf(longtrabajo);
editor.putString("longtrabajo",longtrabajostr);
String latfacultadstr = String.valueOf(latfacultad);
editor.putString("latfacultad",latfacultadstr);
String longfacultadstr = String.valueOf(longfacultad);
editor.putString("longfacultad",longfacultadstr);
editor.commit();
}
Error:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.location.Location.setLatitude (double)' on a null object reference at com.example.houth.ubicaciontp.MainActivity.chargepreferences (MainActivity.java:286) at com.example.houth.ubicaciontp.MainActivity $ 1.onLocationResult (MainActivity.java:61)