在我的应用程序中,一些设置可能在PreferenceActivity未打开时被更改,我遇到的一个问题是在onCreate中调用了addPreferencesFromResource,所以说,我打开PreferenceActivity,然后从那里转到另一个屏幕,然后执行更改设置的操作,然后按返回键返回PreferenceActivity,然后某些设置在布局上没有更改.
那么,每次调用onResume(或onStart())时如何重新加载所有首选项而不重复布局?
解决方法
编辑:此解决方案仅适用于API 11.
我不确定我是否完全理解你的问题,但你可以添加一个调用来重新创建()到活动的onResume,从我的理解中,活动再次经历整个生命周期.
为了确保只在实际存在脏数据时才这样做,我会在SharedPreferences中设置一个标志,让你的活动在onResume()中知道它需要重新创建.
public void onResume(){ super.onResume(); SharedPreferences pref = getApplicationContext().getSharedPreferences(Constants.PREFS_NAME,Context.MODE_PRIVATE); if(pref.getBoolean("isDirtyPrefs",true)) recreate(); }