private void updateKeys(PreferenceGroup parent) { for (int i = 0; i < parent.getPreferenceCount(); i++) { Preference pref = parent.getPreference(i); boolean changed = false; if (pref.getKey() != null && pref.getKey().contains("%d")) { pref.setKey(String.format(pref.getKey(), mAppWidgetId)); changed = true; } if (pref.getDependency() != null && pref.getDependency().contains("%d")) { pref.setDependency(String.format(pref.getDependency(), mAppWidgetId)); changed = true; } if (changed) { reloadPreference(pref); } if (pref instanceof PreferenceGroup) { updateKeys((PreferenceGroup) pref); } } }