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.
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.
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
}
Essaie
SharedPreferences shf = getSharedPreferences("NAME_SharedPref", MODE_WORLD_READABLE);
String strPref = shf.getString("SERVERIP", null);
if(strPref != null) {
// do some thing
}