web-dev-qa-db-ja.com

共有設定にキーが存在するかどうかを確認します

次のように共有設定を作成しています

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

onCreate新しい値のTextViewのセットに値を表示したいのですが、初めて共有設定に値が保存されておらず、NULLポインター例外が発生します。

SharedPreferencesに値が含まれているかどうかを確認できる組み込みメソッドがあるかどうかを知りたい。キーが存在するかどうかを確認し、存在しない場合は、新しいセットを置き換える設定値を持つTextViews。

42
Vivekanand

試してくださいcontains(String key) Javadocsによると、

.

131
Joshua G

SharedPreferencesから値を取得するためのすべてのメソッドには、キーが存在しない場合に返されるデフォルト値があります

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

試してみる

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

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

    }
9
Richa