web-dev-qa-db-fra.com

comment utiliser getSharedPreferences dans android

J'ai une application dans laquelle je dois mettre en œuvre une activité "Connexion". J'ai ces composants:

  1. Nom d'utilisateur EditText
  2. Mot de passe EditText
  3. Bouton de connexion
  4. Bouton Annuler

Je souhaite que mon application garde en mémoire les informations de connexion de l'utilisateur une fois que celui-ci s'est connecté jusqu'à ce que l'utilisateur appuie sur le bouton "Déconnexion". Je n'utilise pas de préférences dans mon xml.

Comment puis-je faire en sorte que getSharedPreferences (nom de chaîne, mode int) fonctionne dans mon application?

72
CMA

Commencez par obtenir l'instance de SharedPreferences à l'aide de

SharedPreferences userDetails = context.getSharedPreferences("userdetails", MODE_PRIVATE);

Maintenant, pour enregistrer les valeurs dans les SharedPreferences

Editor edit = userDetails.edit();
edit.putString("username", username.getText().toString().trim());
edit.putString("password", password.getText().toString().trim());
edit.apply();

Les lignes ci-dessus écrivent le nom d'utilisateur et le mot de passe selon les préférences.

Maintenant, pour récupérer les valeurs enregistrées de préférence, vous pouvez suivre les lignes de code ci-dessous

String userName = userDetails.getString("username", "");
String password = userDetails.getString("password", "");

(REMARQUE: SAUVEGARDER LE MOT DE PASSE DANS L’APP IS NON RECOMMANDÉ. VOUS DEVEZ CRYPTER LE MOT DE PASSE AVANT D’ÉCONOMISER OR SAUVEZ L’ÉCOUTE DU MOT DE PASSE]

138
Dharmendra
//Set Preference
SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
SharedPreferences.Editor prefsEditor;  
prefsEditor = myPrefs.edit();  
//strVersionName->Any value to be stored  
prefsEditor.putString("STOREDVALUE", strVersionName);  
prefsEditor.commit();

//Get Preferenece  
SharedPreferences myPrefs;    
myPrefs = getSharedPreferences("myPrefs", MODE_WORLD_READABLE);  
String StoredValue=myPrefs.getString("STOREDVALUE", "");

Essaye ça..

13
Karthik

Après avoir beaucoup lu, seul cela a fonctionné: En classe pour définir les préférences partagées:

 SharedPreferences userDetails = getApplicationContext().getSharedPreferences("test", MODE_PRIVATE);
                    SharedPreferences.Editor edit = userDetails.edit();
                    edit.clear();
                    edit.putString("test1", "1");
                    edit.putString("test2", "2");
                    edit.commit();

Dans AlarmReciever:

SharedPreferences userDetails = context.getSharedPreferences("test", Context.MODE_PRIVATE);
    String test1 = userDetails.getString("test1", "");
    String test2 = userDetails.getString("test2", "");
1
Afshin Ghazi