import android.preference.PreferenceManager;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
// then you use
prefs.getBoolean("keystring", true);
Aktualizacja
Zgodnie ze wspólnymi preferencjami | Samouczek programisty Androida (część 13) autorstwa Sai Geetha MN,
Wiele aplikacji może stanowić sposób na uchwycenie preferencji użytkownika dotyczących ustawień konkretnej aplikacji lub działania. Do obsługi tego systemu Android zapewnia prosty zestaw interfejsów API.
Preferencje to zazwyczaj pary wartości nazw. Mogą być przechowywane jako „Preferencje współdzielone” dla różnych działań w aplikacji (zauważ, że obecnie nie można ich współdzielić między procesami). Lub może to być coś, co należy przechowywać specyficzne dla działania.
Wspólne preferencje: Wspólne preferencje mogą być używane przez wszystkie komponenty (działania, usługi itp.) Aplikacji.
Preferencje obsługiwane przez działanie: Preferencje te mogą być używane tylko w ramach określonego działania i nie mogą być używane przez inne komponenty aplikacji.
Wspólne preferencje:
Wspólnymi preferencjami zarządza się za pomocą getSharedPreferences
metody Context
klasy. Preferencje są przechowywane w domyślnym pliku (1) lub można określić nazwę pliku (2), która będzie używana w odniesieniu do preferencji.
(1) Zalecanym sposobem jest korzystanie z trybu domyślnego bez podawania nazwy pliku
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
(2) Oto jak uzyskać instancję, gdy określasz nazwę pliku
public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
MODE_PRIVATE
to tryb działania preferencji. Jest to tryb domyślny i oznacza, że dostęp do utworzonego pliku będzie mieć tylko aplikacja wywołująca. Pozostałe dwa obsługiwane tryby to MODE_WORLD_READABLE
i MODE_WORLD_WRITEABLE
. W MODE_WORLD_READABLE
innej aplikacji można odczytać utworzony plik, ale nie można go zmodyfikować. W przypadku MODE_WORLD_WRITEABLE
innych aplikacji mają również uprawnienia do zapisu dla utworzonego pliku.
Wreszcie, gdy już masz instancję preferencji, oto jak możesz pobrać zapisane wartości z preferencji:
int storedPreference = preferences.getInt("storedInt", 0);
Do przechowywania wartości w pliku preferencji SharedPreference.Editor
należy użyć obiektu. Editor
jest zagnieżdżonym interfejsem w SharedPreference
klasie.
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
Edytor obsługuje również metody takie jak remove()
i clear()
do usuwania wartości preferencji z pliku.
Preferencje aktywności:
Wspólne preferencje mogą być używane przez inne komponenty aplikacji. Ale jeśli nie musisz udostępniać preferencji innym komponentom i chcesz mieć prywatne preferencje dotyczące działania, możesz to zrobić za pomocą getPreferences()
metody działania. getPreference
Metoda wykorzystuje getSharedPreferences()
metodę o nazwie klasy aktywności dla nazwy pliku preferencji.
Poniżej znajduje się kod, aby uzyskać preferencje
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);
Kod do przechowywania wartości jest również taki sam, jak w przypadku wspólnych preferencji.
SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
Możesz także użyć innych metod, takich jak przechowywanie stanu aktywności w bazie danych. Uwaga Android zawiera także pakiet o nazwie android.preference
. Pakiet definiuje klasy do implementacji interfejsu użytkownika preferencji aplikacji.
Aby zobaczyć więcej przykładów, sprawdź post Android Storage Data na stronie programistów.