2010-12-13 11 views
1

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

編集..ワンステップで/リセットをクリアする方法はありませんということでした:より良い私がしようとしてるかを説明しようとする(場合には、私のアプローチは大きく外れています) :特定のアクティビティで使用されている共有設定をクリアする必要があります(他のアクティビティの設定を無期限に保持する必要があるため)。

答えて

-1

代わりにPreferenceManager.getDefaultSharedPreferences(context)を使用して、あなたのprefsを取得できますか?

編集:あなたが値をリセットすることを選択した後、あなたのアプリケーションに

adbのシェル。設定ファイルを見ると、デフォルト値が設定されていることがわかります。アクティビティをリフレッシュしてみてください。私がこれをした1つの方法は、アプリケーションメニューから単にそれを殺すことでした。アクティビティが再開すると、期待されるデフォルト値になります。

+0

これにより、他の共有設定(ユーザー設定などの永続的な設定)もクリアされます。 – Tyler

+0

ゲットーの解決策かもしれませんが、すべての値をそのままデフォルトに戻す独自の種類の明確な機能を実装できます。これは本当に素早く汚れた解決策ですが、後でそれを行う方法を見つけたら、いつでも適切なコードに置き換えることができます。 – csaunders

関連する問題