2010-08-26 7 views

Antwort

24

Nach Shared Preferences | Android Developer Tutorial (Part 13) von Sai Geetha MN,

Viele Anwendungen bieten eine Möglichkeit, können Benutzereinstellungen auf den Einstellungen zu erfassen einer bestimmten Anwendung oder einer Aktivität. Zur Unterstützung von bietet Android eine einfache Reihe von APIs.

Präferenzen sind normalerweise Name-Wert-Paare. Sie können als "Gemeinsame Einstellungen" über verschiedene Aktivitäten in einer Anwendung gespeichert werden (Hinweis kann derzeit nicht über Prozesse hinweg gemeinsam genutzt werden). Oder es kann etwas sein, das spezifisch für eine Aktivität gespeichert werden muss.

  1. Gemeinschafts-Einstellungen: Die gemeinsamen Einstellungen können von allen Komponenten (Aktivitäten, Dienstleistungen usw.) von den Anwendungen verwendet werden.

  2. Aktivitätseinstellungen: Diese Einstellungen können nur in der Aktivität verwendet werden und können nicht von anderen Komponenten der Anwendung verwendet werden.

Gemeinsame Vorlieben:

Die gemeinsamen Einstellungen werden mit Hilfe von getSharedPreferences Methode der Context Klasse verwaltet. Die Voreinstellungen werden in einer Standarddatei (1) gespeichert, oder Sie können einen Dateinamen (2) angeben, der verwendet werden soll, um auf die Voreinstellungen Bezug zu nehmen.

(1) Hier ist, wie Sie die Instanz erhalten, wenn Sie den Dateinamen angeben

public static final String PREF_FILE_NAME = "PrefFile"; 
    SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE); 

MODE_PRIVATE ist die Betriebsart für die Einstellungen. Dies ist der Standardmodus und bedeutet, dass auf die erstellte Datei nur von der aufrufenden Anwendung zugegriffen wird. Andere unterstützte Modi sind MODE_WORLD_READABLE und MODE_WORLD_WRITEABLE. In MODE_WORLD_READABLE kann eine andere Anwendung die erstellte Datei lesen, aber nicht ändern. Im Fall von MODE_WORLD_WRITEABLE haben andere Anwendungen auch Schreibberechtigungen für die erstellte Datei.

(2) Der empfohlene Weg ist durch den Standard-Modus zu verwenden, ohne die Dateinamen

SharedPreferences preferences = PreferencesManager.getDefaultSharedPreferences(context); 

Schließlich zu spezifizieren, sobald Sie die Einstellungen Instanz haben, ist hier, wie Sie die gespeicherte abrufen Werte von den Vorlieben:

int storedPreference = preferences.getInt("storedInt", 0); 

Um store in der Voreinstellungsdatei Werte SharedPreference.Editor Objekt muss verwendet werden. Editor ist die verschachtelte Schnittstelle der Klasse SharedPreference.

SharedPreferences.Editor editor = preferences.edit(); 
editor.putInt("storedInt", storedPreference); // value to store 
editor.commit(); 

Editor auch Methoden unterstützen wie remove() und clear() den Präferenzwert aus der Datei zu löschen.

Aktivität Vorlieben:

Die gemeinsamen Präferenzen können durch andere Anwendungskomponenten verwendet werden. Aber wenn Sie die Voreinstellungen nicht mit anderen Komponenten teilen müssen und möchten, dass Aktivitäten private Präferenzen haben. Sie können dies mit Hilfe der Methode getPreferences() der Aktivität tun. Die Methode getPreference verwendet die Methode getSharedPreferences() mit dem Namen der Aktivitätsklasse für den Namen der Voreinstellungsdatei.

Im Folgenden finden Sie den Code Vorlieben zu bekommen

SharedPreferences preferences = getPreferences(MODE_PRIVATE); 
int storedPreference = preferences.getInt("storedInt", 0); 

Die Codewerte zu speichern, ist auch bei gemeinsamen Vorlieben gleich.

SharedPreferences preferences = getPreference(MODE_PRIVATE); 
SharedPreferences.Editor editor = preferences.edit(); 
editor.putInt("storedInt", storedPreference); // value to store 
editor.commit(); 

Sie können auch andere Methoden wie Speichern des Aktivitätsstatus in der Datenbank verwenden. Hinweis: Android enthält auch ein Paket mit der Bezeichnung android.preference. Das Paket definiert Klassen zum Implementieren von UI für Anwendungseinstellungen.

Um einige weitere Beispiele zu sehen, überprüfen Android Data Storage Post auf der Entwickler-Website.

+0

wirklich gr8 Antwort, ich bin auch nicht zu wissen, über Präferenzen, aber jetzt habe ich die Idee, über sie. Danke Pentium –

+0

Danke, Pentium. Wish @Jaya hätte deine als Antwort gewählt. –

0

SharedPreferences Beispiel:

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(); 
} 
} 

Hier ist der Beitrag: http://www.codestacks.in/2013/03/sharedpreferences/