2010-10-19 12 views
5

quando si stabilisce una preferenza condivisa come di seguito ...di accesso Preferenze Camerata da diversa attività (Android)

public static final String PREFS_HI = "MyPrefsFile"; 

Potete accedervi da altre attività, proprio come si farebbe normalmente?

SharedPreferences settings = getSharedPreferences(PREFS_HI, 0); 

Oppure c'è qualcosa di unico che è necessario fare per accedere alle preferenze?

risposta

1

Ho capito questo da solo. Ho appena usato le variabili globali e memorizzato le sharedpreferences all'interno di esse. Quando un'altra attività voleva accedere alle preferenze, sarebbe semplice accedere a una variabile globale.

+0

È intendi hanno 'SharedPreferences' memorizzato come' static' pubblico? Davvero non dovresti farlo. Ho fatto lo stesso errore e anche se funziona, provoca una perdita di memoria enorme. Vedi: http://android-developers.blogspot.in/2009/01/avoiding-memory-leaks.html –

3

Vorrei memorizzare il nome delle preferenze condivise (cosa si sta chiamando PREFS_HI) nel file xml delle risorse (strings.xml). Quindi puoi semplicemente usare getSharedPreferences(getResources().getString(R.string.sharedPrefs)). La tua soluzione funziona bene, però. (E le prestazioni possono essere leggermente migliore nella vostra versione.)

+0

Ya, ho esaminato anche questa alternativa. –

0

getApplication(). GetSharedPreferences (nome, la modalità) Prova questa

Problemi correlati