LatLng 座標を保存しています。メソッドは次のようになります。
@Override
protected void onPause() {
markerList.clear();
sharedPreferences=getPreferences(Context.MODE_PRIVATE);
editor=sharedPreferences.edit();
key =0;
for (LatLng latlng:markerList){
double lat = latlng.latitude;
double lng = latlng.longitude;
editor.putString("key"+key,lat+","+lng);
key++;
}
editor.putInt("id",key);
editor.apply();
super.onPause();
}
文字列を取得して double に解析しようとすると:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
markerList = new ArrayList<>();
setContentView(R.layout.activity_maps);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
sharedPreferences=getPreferences(Context.MODE_PRIVATE);
try{
key = sharedPreferences.getInt("id",0);
for (int i =0;i<=key;i++){
if (sharedPreferences!=null){
String toSplit = sharedPreferences.getString("key"+i, null);
String[] split = toSplit.split(",");
double lat = Double.parseDouble(split[0]);
double lng = Double.parseDouble(split[1]);
LatLng latLng = new LatLng(lat,lng);
markerList.add(latLng);
}
}
}catch (NullPointerException e){
e.printStackTrace();
}catch (NumberFormatException n){
n.printStackTrace();
}
私は得る:
java.lang.NumberFormatException: Invalid double: "lat/lng: (13.182902096722074"
この行で:
double lat = Double.parseDouble(split[0]);
私はコードを1000回調べましたが、すべて問題ないように見えますか? 私は何が欠けていますか?