xmlファイルからPreferenceScreenを読み込んで新しいイベントを設定する画面として使用するので、このアクティビティが使用しているSharedPreferenceの値をクリアしてリセットしようとしています。私が遭遇している問題は、名前付き環境設定マネージャを使用しようとすると、環境設定がクリアされているように見えますが、EditTextPreference要素を選択すると、古いデータはポップアップのデフォルトの入力テキストです。PreferenceScreenを使用するときの設定をリセットする
私のonCreateメソッドで、環境設定を初期化しようとしていますが、それらをクリアしてからデフォルト値に設定しています。 DEV資源からの私の理解では、
private static final String PREFNAME = "newmeetingactivity.preferences";
//load preferences and set name
addPreferencesFromResource(R.layout.newmeeting_preferences);
getPreferenceManager().setSharedPreferencesName(PREFNAME);
getPreferenceManager().setSharedPreferencesMode(MODE_PRIVATE);
//Clear the preferences
_sharedPreferences = getPreferenceManager().getSharedPreferences();
SharedPreferences.Editor ed = _sharedPreferences.edit();
ed.clear();
ed.commit();
//Load default preferences from file again
PreferenceManager.setDefaultValues(this, _sharedPreferences.toString() , MODE_PRIVATE, R.layout.newmeeting_preferences, true);
編集..ワンステップで/リセットをクリアする方法はありませんということでした:より良い私がしようとしてるかを説明しようとする(場合には、私のアプローチは大きく外れています) :特定のアクティビティで使用されている共有設定をクリアする必要があります(他のアクティビティの設定を無期限に保持する必要があるため)。
これにより、他の共有設定(ユーザー設定などの永続的な設定)もクリアされます。 – Tyler
ゲットーの解決策かもしれませんが、すべての値をそのままデフォルトに戻す独自の種類の明確な機能を実装できます。これは本当に素早く汚れた解決策ですが、後でそれを行う方法を見つけたら、いつでも適切なコードに置き換えることができます。 – csaunders