Daten einer SharedPreference in anderen Views bzw. Activities nutzen

D

draikin

Neues Mitglied
1
Ich brauche mal einen Tipp für folgendes Problem: Ich schreibe an einer App, bei der ich auch eine Activity für die Einstellungen habe. Diese ist abgeleitet von PreferenceActivity. Die Daten werden auch ohne Probleme gespeichert und geändert. Nun möchte ich diese Werte in einer anderen Activity (anderer Bildschirm) der Applikation nutzen. Leider schaffe ich es nicht die Daten zu lesen. Ich bekomme immer den default-Wert zurück. Wie ist da das vorgehen. Mit der Suche in der Doku habe ich nichts dazu gefunden. Aber das liegt wohl daran, dass dies wohl eher ein generelles Verständnisproblem zu sein scheint. Hier noch einmal der Code mit dem ich versuche die Daten der Preferences auszulesen:

Code:
        SharedPreferences settings = getSharedPreferences(EditConfiguration.CONFIGURATION_NAME, 1);
        String userWt = settings.getString("userwt", "1");
        String userHt = settings.getString("userht", "1");
und der Ausschnitt aus der Preference-Klasse:

Code:
public class EditConfiguration extends PreferenceActivity
{
    public static final String CONFIGURATION_NAME = EditConfiguration.class
            .getSimpleName();
...
}
Über eine Tipp, oder Hinweis auf die entsprechende Doku würde ich mich freuen.
 
Hier ne Klasse, die ich für die Preferences benutze - funktioniert wunderbar ;)

Code:
public class Preferences {
	
	
	
	private static final String SHARED_PREFERENCES_NAME = "myActivity.preferences";

	private static Editor EDITORINSTANCE = null;	
	private static SharedPreferences INSTANCE = null;
	

	public static SharedPreferences getInstance(final Context ctx) {
		if (INSTANCE == null) {
			INSTANCE = PreferenceManager.getDefaultSharedPreferences(ctx);
		}
		return INSTANCE;
	}
	
	public static Editor getEditorInstance(final Context ctx){
		if(EDITORINSTANCE == null) {
			EDITORINSTANCE = getInstance(ctx).edit();
		}
		return EDITORINSTANCE;
	}

}
 
Danke für Dein Codebeispiel. Meine Preferences -Activity funktioniert ohne Probleme. Was nicht klappt, ist die gespeicherten Daten, die ich im Emulator in der App sehen kann, in einer anderen Activity zu lesen, indem ich mir die Preferences über den Namen hole und dann lese.

Hat noch jemnd einen Tipp oder ein Beispiel, wo bzw. wie das funktioniert?
 
Ich habe nun die Lösung meines Problems bei android-developers gefunden. Mein Fehler war das ich
Code:
SharedPreferences settings = getSharedPreferences(EditConfiguration.CONFIGURATION_NAME, 0);
verwendet habe, was aber versucht die Preferences der aktuellen Activity zu laden. Um an die global gespeicherten Daten zu kommen muß
Code:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
verwendet werden. Dann kann ich auch alle Werte auslesen.


P.S.: Wie kann ich den Thread als gelöst markieren?
 

Ähnliche Themen

S
Antworten
33
Aufrufe
2.666
Sempervivum
S
A
Antworten
10
Aufrufe
1.021
swa00
swa00
D
  • Data2006
Antworten
14
Aufrufe
486
jogimuc
J
Zurück
Oben Unten