diff --git a/samples/ApiDemos/res/layout-land/fragment_preferences.xml b/samples/ApiDemos/res/layout-land/fragment_preferences.xml index 6b81f3d15..8084e9dbd 100644 --- a/samples/ApiDemos/res/layout-land/fragment_preferences.xml +++ b/samples/ApiDemos/res/layout-land/fragment_preferences.xml @@ -20,7 +20,7 @@ android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> - Screen preference Shows another screen of preferences + Fragment preference + Shows another fragment of preferences + Toggle preference Preference that is on the next screen but same hierarchy diff --git a/samples/ApiDemos/res/xml/advanced_preferences.xml b/samples/ApiDemos/res/xml/advanced_preferences.xml index c362297d2..dd6de31d8 100644 --- a/samples/ApiDemos/res/xml/advanced_preferences.xml +++ b/samples/ApiDemos/res/xml/advanced_preferences.xml @@ -23,7 +23,7 @@ portion of the preference, if the whole preference wanted to be replaced we would use the layout attribute instead of the widgetLayout attribute. --> - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/ApiDemos/res/xml/fragmented_preferences_inner.xml b/samples/ApiDemos/res/xml/fragmented_preferences_inner.xml new file mode 100644 index 000000000..f462c5759 --- /dev/null +++ b/samples/ApiDemos/res/xml/fragmented_preferences_inner.xml @@ -0,0 +1,26 @@ + + + + + + + + + diff --git a/samples/ApiDemos/src/com/example/android/apis/app/MyPreference.java b/samples/ApiDemos/src/com/example/android/apis/preference/MyPreference.java similarity index 96% rename from samples/ApiDemos/src/com/example/android/apis/app/MyPreference.java rename to samples/ApiDemos/src/com/example/android/apis/preference/MyPreference.java index 967c1818b..aeb8bf9e9 100644 --- a/samples/ApiDemos/src/com/example/android/apis/app/MyPreference.java +++ b/samples/ApiDemos/src/com/example/android/apis/preference/MyPreference.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.example.android.apis.app; +package com.example.android.apis.preference; import com.example.android.apis.R; @@ -33,18 +33,18 @@ import android.widget.TextView; */ public class MyPreference extends Preference { private int mClickCounter; - + // This is the constructor called by the inflater public MyPreference(Context context, AttributeSet attrs) { super(context, attrs); - - setWidgetLayoutResource(R.layout.preference_widget_mypreference); + + setWidgetLayoutResource(R.layout.preference_widget_mypreference); } @Override protected void onBindView(View view) { super.onBindView(view); - + // Set our custom views inside the layout final TextView myTextView = (TextView) view.findViewById(R.id.mypreference_widget); if (myTextView != null) { @@ -61,14 +61,14 @@ public class MyPreference extends Preference { // They don't want the value to be set return; } - + // Increment counter mClickCounter = newValue; - + // Save to persistent storage (this method will make sure this // preference should be persistent, along with other useful checks) persistInt(mClickCounter); - + // Data has changed, notify so UI can be refreshed! notifyChanged(); } @@ -100,7 +100,7 @@ public class MyPreference extends Preference { * must save the instance state so it is able to, for example, survive * orientation changes. */ - + final Parcelable superState = super.onSaveInstanceState(); if (isPersistent()) { // No need to save instance state since it's persistent @@ -120,14 +120,14 @@ public class MyPreference extends Preference { super.onRestoreInstanceState(state); return; } - + // Restore the instance state SavedState myState = (SavedState) state; super.onRestoreInstanceState(myState.getSuperState()); mClickCounter = myState.clickCounter; notifyChanged(); } - + /** * SavedState, a subclass of {@link BaseSavedState}, will store the state * of MyPreference, a subclass of Preference. @@ -136,10 +136,10 @@ public class MyPreference extends Preference { */ private static class SavedState extends BaseSavedState { int clickCounter; - + public SavedState(Parcel source) { super(source); - + // Restore the click counter clickCounter = source.readInt(); } @@ -147,7 +147,7 @@ public class MyPreference extends Preference { @Override public void writeToParcel(Parcel dest, int flags) { super.writeToParcel(dest, flags); - + // Save the click counter dest.writeInt(clickCounter); } @@ -167,5 +167,5 @@ public class MyPreference extends Preference { } }; } - + } diff --git a/samples/ApiDemos/src/com/example/android/apis/preference/PreferenceWithHeaders.java b/samples/ApiDemos/src/com/example/android/apis/preference/PreferenceWithHeaders.java index 874e7872f..2b8febc37 100644 --- a/samples/ApiDemos/src/com/example/android/apis/preference/PreferenceWithHeaders.java +++ b/samples/ApiDemos/src/com/example/android/apis/preference/PreferenceWithHeaders.java @@ -30,21 +30,44 @@ import java.util.List; */ //BEGIN_INCLUDE(activity) public class PreferenceWithHeaders extends PreferenceActivity { + /** + * Populate the activity with the top-level headers. + */ @Override public void onBuildHeaders(List
target) { loadHeadersFromResource(R.xml.preference_headers, target); } + /** + * This fragment shows the preferences for the first header. + */ public static class Prefs1Fragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Load the preferences from an XML resource - addPreferencesFromResource(R.xml.preferences); + addPreferencesFromResource(R.xml.fragmented_preferences); } } + /** + * This fragment contains a second-level set of preference that you + * can get to by tapping an item in the first preferences fragment. + */ + public static class Prefs1FragmentInner extends PreferenceFragment { + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // Load the preferences from an XML resource + addPreferencesFromResource(R.xml.fragmented_preferences_inner); + } + } + + /** + * This fragment shows the preferences for the second header. + */ public static class Prefs2Fragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) {