2010-08-26 5 views

Répondre

24

Selon Shared Preferences | Android Developer Tutorial (Part 13) par Sai Gita MN,

De nombreuses applications peuvent fournir un moyen de saisir les préférences de l'utilisateur sur les paramètres d'une application spécifique ou d'une activité. Pour soutenir cela, Android fournit un ensemble simple d'API.

Les préférences sont généralement des paires de valeurs de nom. Ils peuvent être stockés sous la forme "Préférences partagées" à travers différentes activités d'une application (notez actuellement, il ne peut pas être partagé entre processus). Ou il peut être quelque chose qui doit être stocké spécifique à une activité.

  1. Préférences partagées: Les préférences partagées peuvent être utilisées par toutes les composantes (activités, services, etc.) au large des applications. Préférences gérées par l'activité: Ces préférences peuvent uniquement être utilisées dans l'activité et ne peuvent pas être utilisées par d'autres composants de l'application.

Préférences partagées:

Les préférences partagées sont gérées à l'aide de la méthode getSharedPreferences de la classe Context. Les préférences sont stockées dans un fichier par défaut (1) ou vous pouvez spécifier un nom de fichier (2) à utiliser pour faire référence aux préférences.

(1) Voici comment vous obtenez l'instance lorsque vous spécifiez le nom du fichier

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

MODE_PRIVATE est le mode de fonctionnement pour les préférences. C'est le mode par défaut et signifie que le fichier créé sera accessible uniquement par l'application appelante. Les deux autres modes pris en charge sont MODE_WORLD_READABLE et MODE_WORLD_WRITEABLE. Dans MODE_WORLD_READABLE l'autre application peut lire le fichier créé mais ne peut pas le modifier. Dans le cas de MODE_WORLD_WRITEABLE d'autres applications ont également des autorisations d'écriture pour le fichier créé.

(2) La méthode recommandée est d'utiliser le mode par défaut, sans spécifier le nom du fichier

SharedPreferences preferences = PreferencesManager.getDefaultSharedPreferences(context); 

Enfin, une fois que vous avez l'instance de préférences, voici comment vous pouvez récupérer le stocké valeurs des préférences:

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

Pour stocker des valeurs dans le fichier de préférencesL'objetdoit être utilisé. Editor est l'interface imbriquée de la classe SharedPreference.

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

Editor soutiennent également des méthodes telles que remove() et clear() pour supprimer la valeur de préférence à partir du fichier.

Préférences d'activité:

Les préférences partagées peuvent être utilisées par d'autres composants de l'application. Mais si vous n'avez pas besoin de partager les préférences avec d'autres composants et que vous voulez avoir des préférences privées d'activités. Vous pouvez le faire avec l'aide de la méthode getPreferences() de l'activité. La méthode getPreference utilise la méthode getSharedPreferences() avec le nom de la classe d'activité pour le nom de fichier de préférence.

Voici le code pour obtenir les préférences

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

Le code pour stocker des valeurs est aussi même que dans le cas des préférences partagées.

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

Vous pouvez également utiliser d'autres méthodes telles que le stockage de l'état d'activité dans la base de données. Remarque Android contient également un package appelé android.preference. Le package définit des classes pour implémenter l'interface utilisateur des préférences d'application.

Pour voir d'autres exemples, consultez l'article Data Storage d'Android sur le site des développeurs.

+0

réponse vraiment gr8, je suis aussi de ne pas savoir sur les préférences, mais maintenant j'eu l'idée à ce sujet. Merci pentium –

+0

, Pentium. Je souhaite @Jaya aurait choisi le vôtre comme réponse. –

0

SharedPreferences Exemple:

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

Voici le message: http://www.codestacks.in/2013/03/sharedpreferences/