/* * Copyright (C) 2015 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License */ package android.support.v7.preference; import android.content.Context; import android.support.annotation.RestrictTo; import android.support.v4.content.res.TypedArrayUtils; import android.util.AttributeSet; import static android.support.annotation.RestrictTo.Scope.GROUP_ID; /** * Represents a top-level {@link Preference} that * is the root of a Preference hierarchy. A {@link PreferenceFragmentCompat} * points to an instance of this class to show the preferences. To instantiate * this class, use {@link PreferenceManager#createPreferenceScreen(android.content.Context)}. *
Here's an example XML layout of a PreferenceScreen:
*<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:key="first_preferencescreen"> <CheckBoxPreference android:key="wifi enabled" android:title="WiFi" /> <PreferenceScreen android:key="second_preferencescreen" android:title="WiFi settings"> <CheckBoxPreference android:key="prefer wifi" android:title="Prefer WiFi" /> ... other preferences here ... </PreferenceScreen> </PreferenceScreen>*
* In this example, the "first_preferencescreen" will be used as the root of the * hierarchy and given to a {@link android.support.v14.preference.PreferenceFragment} * or {@link PreferenceFragmentCompat}. * The first screen will * show preferences "WiFi" (which can be used to quickly enable/disable WiFi) * and "WiFi settings". The "WiFi settings" is the "second_preferencescreen" and when * clicked will show another screen of preferences such as "Prefer WiFi" (and * the other preferences that are children of the "second_preferencescreen" tag). * *
For information about building a settings UI with Preferences, * read the Settings * guide.
** This method may only be called when the preference screen is not attached to the hierarchy. *
* Default value is {@code true}. * * @param shouldUseGeneratedIds {@code true} if the adapter should use the preference ID as a * stable ID, or {@code false} to disable the use of * stable IDs */ public void setShouldUseGeneratedIds(boolean shouldUseGeneratedIds) { if (isAttached()) { throw new IllegalStateException("Cannot change the usage of generated IDs while" + " attached to the preference hierarchy"); } mShouldUseGeneratedIds = shouldUseGeneratedIds; } }