Dmytro Zarezenko问,如果您希望在某些依赖项所依赖的首选项为真时启用某些依赖项,并在该首选项为假时启用某些依赖项,该怎么办?
使用上述方法设置一种类型的所有从属首选项(数量越大)。然后(类具有实现 OnSharedPreferenceChangeListener)在首选项活动和/或首选项片段中具有如下代码:
@Override
public void onResume()
{
super.onResume();
sharedPreferences.registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onPause()
{
super.onPause();
sharedPreferences.unregisterOnSharedPreferenceChangeListener(this);
}
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)
{
if (key.equals("pref_that_they_depend-upon")
{
// Iterate over the preferences that need to be enabled or disabled,
// lets say there is just one called the_awkward_one.
Preference preference = findPreference("the_awkward_one");
// Or preference.setEnabled(! sharedPreferences.getBoolean(("pref_that_they_depend-upon", defaultValue));
preference.setEnabled(sharedPreferences.getBoolean(("pref_that_they_depend-upon", defaultValue));
}
}