2010-08-26 6 views

Odpowiedz

24

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.

  1. Shared Preferencje: Wspólne preferencje mogą być stosowane przez wszystkich komponentów (czynności, usług itp) OFF aplikacji.

  2. 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.

Preferencje

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.

+0

naprawdę gr8 odpowiedź, ja również nie wiedząc o preferencjach, ale teraz mam pomysł o tym. Thanx pentium –

+0

Dzięki, Pentium. Życzenie @Jaya wybrałoby twoje jako odpowiedź. –

0

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/

Powiązane problemy