3

設定 xml ファイルで指定されたデフォルトにリセットしたい設定がいくつかあります。

すべての設定をリセットするのではなく、選択したいくつかの設定だけをリセットします。

私はもう試した:

key=getResources().getString(R.string.myPref);
sharedPreferences.edit().remove(key).commit();

これにより、プリファレンスがクリアされます。ただし、私のプログラムが設定を選択しようとすると

String myPref = sharedPreferences.getString(key, "");

空の文字列を返すだけです。

XML ファイルから値を取得するにはどうすればよいですか?

ありがとう

私がデバッグしてきたより完全なコード サンプルを追加します。

//Get preferences
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(activity);

//Get preference key
key=getResources().getString(R.string.myPref);

//Get preference value
String myPref = sharedPreferences.getString(key, ""); // Returns a value that has been entered by a user

//Clear preference
sharedPreferences.edit().remove(key).commit();

//Reset preferences to default values - without overwritting all
PreferenceManager.setDefaultValues(currentContext, preferences, false);

//Get preference value again
String myPref = sharedPreferences.getString(key, ""); // Returns an empty string
4

3 に答える 3

2

試してくださいPreferenceManager.setDefaultValues(this, R.xml.preferences, false); これは、ユーザーが変更したエントリが上書きされないようにするための最後のパラメーターとして保存されます。

于 2013-01-30T11:06:31.623 に答える
1

getDefaultSharedPreferences(Context).setDefaultValues(this, R.xml.preference, true);

最後の引数readAgaintrueに設定してください。

これにより、デフォルト値の再読み込みが強制されます。false の場合、このメソッドは、このメソッドが過去に一度も呼び出されていない場合 (またはデフォルト値の共有設定ファイルの KEY_HAS_SET_DEFAULT_VALUES が false の場合) にのみ、デフォルト値を設定します。このチェックをバイパスしてデフォルト値を再度設定するには、readAgain を true に設定します。

于 2013-01-30T11:07:20.997 に答える