2011-01-03 10 views

Antwort

0

SharedPreferences ist der Weg zu gehen. Setzen Sie dies in die Aktivität

public void saveSetting(String settingName, String value){ 
    SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this); 
    Editor ed = pref.edit(); 
    ed.putString(settingName, value); 
    ed.commit(); 
} 
+0

Ich möchte Objekte übergeben, die ich selbst erstellt habe. Soweit ich sehe SharedPreferences nur mit Buildin-Typen arbeiten. – Christian

+0

Serialisieren Sie es in eine Zeichenfolge, möglicherweise mithilfe von JSONObject. – Aliostad

+0

Aliostad spricht die Wahrheit. Beißen Sie die Kugel und serialisieren Sie Ihre Objekte. Auf die eine oder andere Weise müssen Sie dies tun, um Ihre Daten zu speichern. –

0

SharedPreference ist nur gut für Objekte, die SharedPreferences unterstützt. Für beliebige langfristige Lagerung von Objekten müssen Sie die serialisierte Route von irgendeiner Art gehen. Ich schätze, Sie haben die Data Storage page in the docs gelesen. Von dort würde ich Ihnen empfehlen, über Internal Storage zu lesen. Wenn Sie sich nicht mit der serialisierbaren Schnittstelle von Java beschäftigen wollen, dann empfehlen wir Ihnen, sich XStream anzuschauen.

XStream in Verbindung mit internem Speicher bietet möglicherweise die Lösung, die Sie benötigen.

0

Wenn Sie nach einem Punkt der Dauerhaftigkeit der Suche nach einem globalen Anwendungszustand ohne Verwendung von Serialisierung, Datenbanken usw. beibehalten wird, verwenden, um einen Dienst oder die Anwendungsklasse. Allgemeine Tipps zu diesem Problem gefunden unter android developers.

1

Die 2 besten Möglichkeiten für die Übergabe von Objekten zwischen Aktivitäten ist die Verwendung eines statischen Feldes wahrscheinlich in einer Klasse, die Application erweitert oder (wahrscheinlich bevorzugt) einen Dienst verwendet und Ihre Aktivitäten, die Objekte freigeben müssen, an sie bindet.

Seien Sie vorsichtig bei der Verwendung von statischen Feldern in Activities jedoch, wie sie jederzeit zerstört werden können und sind daher nicht Thread sicher und potenziell katastrophal.

0

Sie können SharedPreferences verwenden oder eine Singleton-Klasse erstellen. Ich habe die Singleton-Klasse verwendet, um den Lebenszyklus der Attribute zu steuern. Wenn Sie eine garantierte Persistenz wünschen, speichern Sie Daten in einer SQL-Datenbank.

Mit Singleton können Sie benutzerdefinierte Objekte speichern.

public class MySingleton { 
private static final AlphResourceSet INSTANCE = new MySingleton(); 
private MySingleton() {} 
public static MySingleton getInstance() { 
    return INSTANCE; 
} 
    // all your getters/setters for your variables 
} 
Verwandte Themen