从PreferenceFragment获取所有首选项

时间:2016-11-18 14:19:42

标签: android android-preferences

在我的Android应用程序中,我有一个PreferenceFragment,它是从XML资源文件构建的。加载XML后,我想为Fragment中的每个Preference调用一个方法。我的问题是,我还没有找到一种方法,可以从当前的PreferenceFragment中获取所有偏好设置。

我知道我可以找到findPreference(...)方法的首选项,但我希望得到所有首选项的迭代器。错过了一种方法,或者我们无法获得所有偏好设置?

2 个答案:

答案 0 :(得分:4)

我找到了一个使用以下代码执行此操作的方法:

PreferenceScreen prefScreen = getPreferenceScreen();
int prefCount = prefScreen.getPreferenceCount();

for(int i=0; i < prefCount; i++) {
    Preference pref = prefScreen.getPreference(i);
    // do something with the Preference
}

答案 1 :(得分:0)

假设thisPreferenceFragment,您可以致电:

this.getPreferenceManager().getDefaultSharedPreferences(context).getAll();

这将返回包含所有偏好https://developer.android.com/reference/android/content/SharedPreferences.html#getAll()

的地图