从 PreferenceFragment 获取所有 Preferences
Get all Preferences from PreferenceFragment
在我的 Android 应用程序中,我有一个 PreferenceFragment
是从 XML 资源文件构建的。 XML 加载后,我想为片段中的每个 Preference
调用一个方法。我的问题是我还没有找到一种方法可以给我当前 PreferenceFragment
.
中的所有首选项
我知道我可以使用 findPreference(...)
方法找到首选项,但我想获得所有首选项的迭代器。错过了一个方法还是我们无法获得所有首选项?
假设this
是你的PreferenceFragment
,你可以调用:
this.getPreferenceManager().getDefaultSharedPreferences(context).getAll();
这将 return 具有所有偏好的地图 https://developer.android.com/reference/android/content/SharedPreferences.html#getAll()
我找到了使用以下代码执行此操作的方法:
PreferenceScreen prefScreen = getPreferenceScreen();
int prefCount = prefScreen.getPreferenceCount();
for(int i=0; i < prefCount; i++) {
Preference pref = prefScreen.getPreference(i);
// do something with the Preference
}
在我的 Android 应用程序中,我有一个 PreferenceFragment
是从 XML 资源文件构建的。 XML 加载后,我想为片段中的每个 Preference
调用一个方法。我的问题是我还没有找到一种方法可以给我当前 PreferenceFragment
.
我知道我可以使用 findPreference(...)
方法找到首选项,但我想获得所有首选项的迭代器。错过了一个方法还是我们无法获得所有首选项?
假设this
是你的PreferenceFragment
,你可以调用:
this.getPreferenceManager().getDefaultSharedPreferences(context).getAll();
这将 return 具有所有偏好的地图 https://developer.android.com/reference/android/content/SharedPreferences.html#getAll()
我找到了使用以下代码执行此操作的方法:
PreferenceScreen prefScreen = getPreferenceScreen();
int prefCount = prefScreen.getPreferenceCount();
for(int i=0; i < prefCount; i++) {
Preference pref = prefScreen.getPreference(i);
// do something with the Preference
}