Ich triyng eine HashMap in SharedPreferences zu speichern, aber ich bekomme diese Fehlermeldung, wenn ich die Karte zu laden:speichern Hashzuordnung Gemeinsam genutzte Einstellungen
java.lang.ClassCastException: org.json.JSONArray kann nicht auf Java gegossen werden. util.List
Ich habe den Code angepasst, den ich online gefunden habe, aber ich verstehe nicht, warum ich diesen Fehler bekomme. Hier
ist der Code:
public static Map<String, List<Integer>> loadMap() {
Map<String,List<Integer>> outputMap = new HashMap<>();
SharedPreferences pSharedPref = MainActivity.getContextofApplication().getSharedPreferences(NETWORK_PREF, Activity.MODE_PRIVATE);
try{
if (pSharedPref != null){
String jsonString = pSharedPref.getString(RSSI_MAP, (new JSONObject()).toString());
JSONObject jsonObject = new JSONObject(jsonString);
Iterator<String> keysItr = jsonObject.keys();
while(keysItr.hasNext()) {
String key = keysItr.next();
List<Integer> value = (List<Integer>) jsonObject.get(key);
outputMap.put(key, value);
}
}
}catch(Exception e){
e.printStackTrace();
}
return outputMap;
}
public void saveRSSI() {
SharedPreferences pref = MainActivity.getContextofApplication().getSharedPreferences(NETWORK_PREF,Activity.MODE_PRIVATE);
JSONObject jsonObject = new JSONObject(this.RSSImap);
String jsonString = jsonObject.toString();
SharedPreferences.Editor editor = pref.edit();
editor.putString(RSSI_MAP, jsonString);
editor.commit();
}
danke, ich habe versucht Ihre Lösung und es funktioniert perfekt. –