From 4ececa33b8d05aa28229b8c9fddec28a4ccac3b6 Mon Sep 17 00:00:00 2001 From: Joseph Judistira Date: Fri, 12 Oct 2012 16:10:25 -0400 Subject: [PATCH] Align "from code" parent-child preference flow with "from XML" Add setDependency() call to make "from code" parent-child behavior matched the "from XML" one. Change-Id: I9e19a8bd16f69fb3101928831831103719a03a04 Signed-off-by: Joseph Judistira --- .../apis/preference/PreferencesFromCode.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/samples/ApiDemos/src/com/example/android/apis/preference/PreferencesFromCode.java b/samples/ApiDemos/src/com/example/android/apis/preference/PreferencesFromCode.java index 884991b1f..f4bb310db 100644 --- a/samples/ApiDemos/src/com/example/android/apis/preference/PreferencesFromCode.java +++ b/samples/ApiDemos/src/com/example/android/apis/preference/PreferencesFromCode.java @@ -32,17 +32,18 @@ import android.preference.SwitchPreference; public class PreferencesFromCode extends PreferenceActivity { + private static final String PARENT_CHECKBOX_PREFERENCE = "parent_checkbox_preference"; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setPreferenceScreen(createPreferenceHierarchy()); + PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this); + setPreferenceScreen(root); + populatePreferenceHierarchy(root); } - private PreferenceScreen createPreferenceHierarchy() { - // Root - PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this); - + private void populatePreferenceHierarchy(PreferenceScreen root) { // Inline preferences PreferenceCategory inlinePrefCat = new PreferenceCategory(this); inlinePrefCat.setTitle(R.string.inline_preferences); @@ -132,6 +133,7 @@ public class PreferencesFromCode extends PreferenceActivity { parentCheckBoxPref.setTitle(R.string.title_parent_preference); parentCheckBoxPref.setSummary(R.string.summary_parent_preference); prefAttrsCat.addPreference(parentCheckBoxPref); + parentCheckBoxPref.setKey(PARENT_CHECKBOX_PREFERENCE); // Visual child toggle preference // See res/values/attrs.xml for the that defines @@ -144,8 +146,7 @@ public class PreferencesFromCode extends PreferenceActivity { a.getResourceId(R.styleable.TogglePrefAttrs_android_preferenceLayoutChild, 0)); prefAttrsCat.addPreference(childCheckBoxPref); + childCheckBoxPref.setDependency(PARENT_CHECKBOX_PREFERENCE); a.recycle(); - - return root; } }