web-dev-qa-db-fra.com

Vérifier si la clé existe dans les préférences partagées

Je crée les préférences partagées comme suit

preferences = getSharedPreferences("text", 0);
final Editor editor = preferences.edit();

String s1 = serverIP.getText().toString();
String s2 = serverPort.getText().toString();
String s3 = syncPass.getText().toString();
String s4 = proxyServer.getText().toString();
String s5 = proxyPort.getText().toString();

editor.putString("SERVERIP", s1);
editor.putString("SERVERPORT", s2);
editor.putString("SYNCPASS", s3);
editor.putString("PROXYSERVER", s3);
editor.putString("PROXYPORT", s3);

et onCreate, je souhaite afficher les valeurs dans un nouvel ensemble de TextViews, mais la première fois, aucune valeur ne sera stockée dans les préférences partagées et une exception NULL Pointer apparaîtra.

Je souhaite savoir s'il existe une méthode intégrée permettant de vérifier si les SharedPreferences contiennent une valeur ou non , afin que je puisse vérifier si la clé existe et si non, remplacez le nouvel ensemble de TextViews par valeur de préférences. 

36
Vivekanand

Essayez contains(String key) Selon les Javadocs,

Checks whether the preferences contains a preference. Returns true if the preference exists in the preferences, otherwise false.

126
Joshua G

Chaque méthode d'extraction des valeurs de SharedPreferences a une valeur par défaut qui est renvoyée au cas où la clé n'existe pas

preferences = getSharedPreferences("text", 0);
String value = preferences.getString("unknown_key",null);
if (value == null) {
    // the key does not exist
} else {
    // handle the value
}
21
Mojo Risin

Essaie 

 SharedPreferences shf = getSharedPreferences("NAME_SharedPref", MODE_WORLD_READABLE);
    String strPref = shf.getString("SERVERIP", null);

    if(strPref != null) {
    // do some thing

    }
9
Richa