/* * Copyright 2018 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 androidx.preference; import static androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP; import android.content.Context; import android.util.AttributeSet; import androidx.annotation.RestrictTo; import androidx.core.content.res.TypedArrayUtils; /** * 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(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 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; } }