muszę proste wyjaśnienie dotyczące wspólnego preferencji w Android i uprzywilejowane danychAndroid sharedpreference
Odpowiedz
Według Shared Preferences | Android Developer Tutorial (Part 13) przez Sai Gita MN,
Wiele aplikacji może stanowić drogę do przechwytywania preferencje użytkownika dotyczące ustawień konkretnej aplikacji lub działania. W celu obsługi tego modelu Android zapewnia prosty zestaw interfejsów API.
Preferencje to zazwyczaj pary wartości nazw. Mogą być przechowywane jako "Shared Preferences" w różnych działaniach aplikacji (uwaga: obecnie nie można jej udostępniać w różnych procesach). Lub może być coś, co musi być przechowywane specyficzne dla działalności.
Shared Preferencje: Wspólne preferencje mogą być stosowane przez wszystkich komponentów (czynności, usług itp) OFF aplikacji.
Preferencje obsługiwane czynności: Te preferencje mogą być używane tylko w działaniu i nie mogą być używane przez inne składniki aplikacji.
Shared Preferencje:
Wspólne preferencje są zarządzane za pomocą getSharedPreferences
metody klasy Context
. Preferencje są przechowywane w domyślnym pliku (1) lub możesz określić nazwę pliku (2), która będzie używana do odnoszenia się do preferencji.
(1) Oto jak można dostać instancję gdy podasz nazwę pliku
public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
MODE_PRIVATE
jest tryb pracy preferencjach. Jest to tryb domyślny i oznacza, że utworzony plik będzie dostępny tylko przez aplikację wywołującą. Pozostałe obsługiwane dwa tryby to MODE_WORLD_READABLE
i MODE_WORLD_WRITEABLE
. W MODE_WORLD_READABLE
inna aplikacja może odczytać utworzony plik, ale nie może go zmodyfikować. W przypadku MODE_WORLD_WRITEABLE
inne aplikacje również mają uprawnienia do zapisu dla utworzonego pliku.
(2) Zalecanym sposobem jest użycie przez trybie domyślnym, bez określania nazwy pliku
SharedPreferences preferences = PreferencesManager.getDefaultSharedPreferences(context);
Wreszcie, skoro masz instancję preferencji, oto jak można odzyskać składowany wartości z preferencji:
int storedPreference = preferences.getInt("storedInt", 0);
Aby przechowywać wartości w pliku preferencjiNależy użyć obiektu. Editor
to zagnieżdżony interfejs klasy SharedPreference
.
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
Editor obsługuje również podobne metody remove()
i clear()
aby usunąć wartość preferencji z pliku.
Aktywność:
Wspólne preferencje mogą być wykorzystane przez innych komponentów aplikacji. Ale jeśli nie musisz udostępniać preferencji innym komponentom i chcesz mieć prywatne preferencje działań. Możesz to zrobić przy pomocy metody getPreferences()
. Metoda getPreference
używa metody getSharedPreferences()
z nazwą 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 taka sama jak w przypadku wspólnych upodobań.
SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
Można również użyć innych metod, takich jak przechowywanie stanu aktywności w bazie danych. Uwaga: Android zawiera również pakiet o nazwie android.preference
. Pakiet definiuje klasy w celu implementacji interfejsu użytkownika preferencji aplikacji.
Aby zobaczyć więcej przykładów, sprawdź post na Androidzie pod numerem Data Storage na stronie dla programistów.
SharedPreferences Przykład:
package com.example.test;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.Toast;
public class SharedPreferencesDemo extends Activity {
SharedPreferences shared_preferences;
SharedPreferences.Editor shared_preferences_editor;
String test_string = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
shared_preferences = getSharedPreferences("shared_preferences_test",
MODE_PRIVATE);
test_string = shared_preferences.getString("test_key", "Default");
Toast.makeText(getApplicationContext(), test_string, Toast.LENGTH_SHORT)
.show();
shared_preferences_editor = shared_preferences.edit();
shared_preferences_editor.putString("test_key", "Hello World");
shared_preferences_editor.commit();
test_string=shared_preferences.getString("test_key", "Default");
Toast.makeText(getApplicationContext(), test_string, Toast.LENGTH_SHORT).show();
}
}
Oto wpis: http://www.codestacks.in/2013/03/sharedpreferences/
- 1. java.util.ConcurrentModificationException i SharedPreference
- 2. Jak przechowywać obiekt klasy w Androidzie sharedPreference?
- 3. wykluczyć określone klucz sharedpreference z Androidem 6.0 Automatyczna kopia zapasowa
- 4. Ograniczanie widgetu Android do jednej instancji na urządzenie
- 5. Sprawdzanie poprawności Android EditText Preferencje
- 6. Zmiana stanu przełącznika systemu Android
- 7. Android - Gdzie powinniśmy zapisać nazwę użytkownika i hasło w pamięci urządzenia?
- 8. android: theme = "@ android: style/Theme.NoTitleBar.Fullscreen" Nie działa Android
- 9. Dlaczego funkcja RingtoneManager.setActualDefaultRingtoneUri nie mogła działać? [Android API-8]
- 10. Do jakiego celu android powinienem się rozwijać? Android 4.4W lub Android 4.4L lub Android 4.4 KitKat?
- 11. Różnica: android: tło i android: src?
- 12. Android - Który używać Active Android lub Realm
- 13. użyj prefiksu Android na xml (android :, aplikacja :, @ .., ...)
- 14. Jaka jest różnica między @android a android:
- 15. Jak działają Android: shrinkColumns i android: stretchColumns?
- 16. Android + PhoneGap: android: windowSoftInputMode nie działa
- 17. Android: jak programowo znaleźć nazwę wersji Android?
- 18. Android Studio - "W projekcie wykryto platformę Android"
- 19. dialogowe Android zwyczaj pokazuje android pasek tytułowy
- 20. Android: EditText - wiele linii i android: inputType
- 21. generowanie JavaDocs Android Studiowygenerować JavaDocs Android Studio
- 22. "@android: drawable/ic_" vs "@ * android: drawable/ic_"
- 23. Android 4.2 RadioButton android: błąd drawableLeft?
- 24. Oauth 2.0 Android use Spring-For-Android
- 25. Android XML: android: elewacja vs. aplikacja: elewacja
- 26. Profil systemu Android Android SDKPlikowanie widoków Podgląd
- 27. android java.lang.OutOfMemoryError
- 28. Android + toString
- 29. Android softkeyboard
- 30. android INSTALL_FAILED_MISSING_SHARED_LIBRARY
naprawdę gr8 odpowiedź, ja również nie wiedząc o preferencjach, ale teraz mam pomysł o tym. Thanx pentium –
Dzięki, Pentium. Życzenie @Jaya wybrałoby twoje jako odpowiedź. –