2010-10-19 13 views
5

Kiedy ustanowić wspólny preferencje takie jak poniżej ...dostępu Udostępnione Preferencje z inną aktywność (Android)

public static final String PREFS_HI = "MyPrefsFile"; 

można uzyskać do niego dostęp z innych działań takich jak Ty normalnie zrobić?

SharedPreferences settings = getSharedPreferences(PREFS_HI, 0); 

Czy jest coś wyjątkowego, co należy zrobić, aby uzyskać dostęp do preferencji?

Odpowiedz

1

Sam to wymyśliłem. Właśnie użyłem globalnych zmiennych i przechowywanych sharedpreferences tam. Gdy inna aktywność chce uzyskać dostęp do preferencji, będzie miała łatwy dostęp do zmiennej globalnej.

+0

To znaczy, masz 'SharedPreferences' przechowywane jako' static' publicznej? Naprawdę nie powinieneś tego robić. Zrobiłem ten sam błąd i chociaż działa, powoduje to ogromny wyciek pamięci. Zobacz: http://android-developers.blogspot.in/2009/01/avoiding-memory-leaks.html –

3

Chciałbym zapisać twoją nazwę preferencji współdzielonych (To, co nazywasz PREFS_HI) w pliku xml zasobów (strings.xml). Następnie możesz po prostu użyć getSharedPreferences(getResources().getString(R.string.sharedPrefs)). Twoje rozwiązanie również działa. (I wydajność może być nieco lepiej w swojej wersji.)

+0

Ya, przyjrzałem się również tej alternatywie. –

0

getApplication(). GetSharedPreferences (nazwa, tryb) Spróbuj

Powiązane problemy