Android: Speichern Karte zu SharedPreferences?

Slack Nation:

Ich muss die Daten retten SharedPreferencesin einer solchen Art und Weise , wo ich ein Objekt wie dieses:

{
    "days": [
        {
            "exercises": [
                {
                    "name": "Bench Press",
                    "sets": 3,
                    "reps": 8
                },
                {
                    "name": "Skull Crushers",
                    "sets": 3,
                    "reps": 8
                },
                {
                    "name": "Flys",
                    "sets": 3,
                    "reps": 8
                }
            ]
        },
        {
            "exercises": [
                {
                    "name": "Bench Press",
                    "sets": 3,
                    "reps": 8
                },
                {
                    "name": "Skull Crushers",
                    "sets": 3,
                    "reps": 8
                },
                {
                    "name": "Flys",
                    "sets": 3,
                    "reps": 8
                }
            ]
        }
    ]
}

Ich muß von dem Objekt ziehen und zu dem Objekt hinzufügen. Ich weiß , dass Sie nicht speichern Karten SharedPreferences. Ich beginne zu glauben , dass meine beste Wette zu verwenden ist , ObjectOutputStreamaber ich bin nicht sicher , ob das die beste Wette ist , die internen Speicher zu verwenden. Ich glaube , ich bin nur der Suche nach Orientierung, was meine besten Optionen sind.

edit: von dem, was Advice-Doggesagt, ich meine beste Wette denke zu verwenden ist gson. So Heißt das , dass , wenn ich will (zum Beispiel) eine andere Übung mit dem zweiten Index von „Tagen“ hinzufügen , dass ich zuerst das Objekt von Präferenzen greifen, wandeln sie aus gsonzu einem Objekt, fügen Sie dann die Übung, dann wandeln sie zurück auf gson, dann die Einstellungen überschreiben? Ich sage nicht, das ist schlecht , ich möchte nur wissen , ob das , was getan werden sollte und ob es ratsam ist.

Tipps-Dog:

Wenn komplexere Arten in Android zu speichern, würde ich mit vorschlagen gson. Gson ist Googles JSON - Parsing - Bibliothek, und auch wenn Sie nicht JSON verwenden, können Sie Ihre umwandeln Objectsin ein JSON String, und zu speichern , die leicht.

Zum Beispiel können Sie Ihre Liste der umwandeln Objectsin ein Stringso.

val list : List<MyObject>  // ... add items to your list

// Convert to JSON

val string = gson.toJson(list)

// Store it into Shared Preferences
preferences.putString("list", string).apply()

Und dann kann man leicht bekommen sie in eine Liste wie folgt zurück.

// Fetch the JSON 

val string = preferences.getString("list", "")

// Convert it back into a List

val list: List<MyObject> = gson.fromJson(string, object : TypeToken<List<MyObject>>() {}.type)

Ich denke du magst

Origin http://43.154.161.224:23101/article/api/json?id=119915&siteId=1
Empfohlen
Rangfolge