LeanbackPreferenceFragment
public
abstract
class
LeanbackPreferenceFragment
extends BaseLeanbackPreferenceFragment
| java.lang.Object | ||||
| ↳ | android.app.Fragment | |||
| ↳ | androidx.preference.PreferenceFragment | |||
| ↳ | androidx.leanback.preference.BaseLeanbackPreferenceFragment | |||
| ↳ | androidx.leanback.preference.LeanbackPreferenceFragment | |||
This class is deprecated.
Use LeanbackPreferenceFragmentCompat
This fragment provides a fully decorated leanback-style preference fragment, including a list background and header.
The following sample code shows a simple leanback preference fragment that is populated from a resource. The resource it loads is:
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<PreferenceCategory
android:title="@string/basic_preferences">
<Preference
android:key="preference"
android:title="@string/title_basic_preference"
android:summary="@string/summary_basic_preference"/>
<Preference
android:key="stylized"
android:title="@string/title_stylish_preference"
android:summary="@string/summary_stylish_preference"/>
<Preference
android:key="icon"
android:title="@string/title_icon_preference"
android:summary="@string/summary_icon_preference"
android:icon="@android:drawable/ic_menu_camera"/>
<Preference
android:key="single_line_title"
android:title="@string/title_single_line_title_preference"
android:summary="@string/summary_single_line_title_preference"
app:singleLineTitle="true"/>
</PreferenceCategory>
<PreferenceCategory
android:title="@string/widgets">
<CheckBoxPreference
android:key="checkbox"
android:title="@string/title_checkbox_preference"
android:summary="@string/summary_checkbox_preference"/>
<SwitchPreferenceCompat
android:key="switch"
android:title="@string/title_switch_preference"
android:summary="@string/summary_switch_preference"/>
<DropDownPreference
android:key="dropdown"
android:title="@string/title_dropdown_preference"
android:entries="@array/entries"
app:useSimpleSummaryProvider="true"
android:entryValues="@array/entry_values"/>
<SeekBarPreference
android:key="seekbar"
android:title="@string/title_seekbar_preference"
android:max="10"
android:defaultValue="5"/>
</PreferenceCategory>
<PreferenceCategory
android:title="@string/dialogs">
<EditTextPreference
android:key="edittext"
android:title="@string/title_edittext_preference"
app:useSimpleSummaryProvider="true"
android:dialogTitle="@string/dialog_title_edittext_preference"/>
<ListPreference
android:key="list"
android:title="@string/title_list_preference"
app:useSimpleSummaryProvider="true"
android:entries="@array/entries"
android:entryValues="@array/entry_values"
android:dialogTitle="@string/dialog_title_list_preference"/>
<MultiSelectListPreference
android:key="multi_select_list"
android:title="@string/title_multi_list_preference"
android:summary="@string/summary_multi_list_preference"
android:entries="@array/entries"
android:entryValues="@array/entry_values"
android:dialogTitle="@string/dialog_title_multi_list_preference"/>
</PreferenceCategory>
<PreferenceCategory
android:key="advanced"
android:title="@string/advanced_attributes"
app:initialExpandedChildrenCount="1">
<Preference
android:key="expandable"
android:title="@string/title_expandable_preference"
android:summary="@string/summary_expandable_preference"/>
<Preference
android:title="@string/title_intent_preference"
android:summary="@string/summary_intent_preference">
<intent android:action="android.intent.action.VIEW"
android:data="http://www.android.com"/>
</Preference>
<SwitchPreferenceCompat
android:key="parent"
android:title="@string/title_parent_preference"
android:summary="@string/summary_parent_preference"/>
<SwitchPreferenceCompat
android:key="child"
android:dependency="parent"
android:title="@string/title_child_preference"
android:summary="@string/summary_child_preference"/>
<SwitchPreferenceCompat
android:key="toggle_summary"
android:title="@string/title_toggle_summary_preference"
android:summaryOn="@string/summary_on_toggle_summary_preference"
android:summaryOff="@string/summary_off_toggle_summary_preference"/>
<Preference
android:key="copyable"
android:title="@string/title_copyable_preference"
android:summary="@string/summary_copyable_preference"
android:selectable="false"
app:enableCopying="true"/>
</PreferenceCategory>
</PreferenceScreen>
The fragment needs only to implement PreferenceFragment.onCreatePreferences(Bundle, String) to populate
the list of preference objects:
public static class SettingsFragment extends LeanbackSettingsFragmentCompat {
@Override
public void onPreferenceStartInitialScreen() {
startPreferenceFragment(new DemoFragment());
}
@Override
public boolean onPreferenceStartFragment(PreferenceFragmentCompat caller, Preference pref) {
final Bundle args = pref.getExtras();
final Fragment f = getChildFragmentManager().getFragmentFactory().instantiate(
requireActivity().getClassLoader(), pref.getFragment());
f.setArguments(args);
f.setTargetFragment(caller, 0);
if (f instanceof PreferenceFragmentCompat
|| f instanceof PreferenceDialogFragmentCompat) {
startPreferenceFragment(f);
} else {
startImmersiveFragment(f);
}
return true;
}
@Override
public boolean onPreferenceStartScreen(PreferenceFragmentCompat caller,
PreferenceScreen pref) {
final Fragment fragment = new DemoFragment();
final Bundle args = new Bundle(1);
args.putString(PreferenceFragmentCompat.ARG_PREFERENCE_ROOT, pref.getKey());
fragment.setArguments(args);
startPreferenceFragment(fragment);
return true;
}
}
/**
* The fragment that is embedded in SettingsFragment
*/
public static class DemoFragment extends LeanbackPreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
// Load the preferences from an XML resource
setPreferencesFromResource(R.xml.preferences, rootKey);
}
}
Summary
Inherited constants |
|---|
Public constructors | |
|---|---|
LeanbackPreferenceFragment()
|
|
Public methods | |
|---|---|
View
|
onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
|
void
|
onViewCreated(View view, Bundle savedInstanceState)
|
void
|
setTitle(CharSequence title)
Set the title to be shown above the preference list |
Inherited methods | |
|---|---|
Public constructors
LeanbackPreferenceFragment
public LeanbackPreferenceFragment ()
Public methods
onCreateView
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
| Parameters | |
|---|---|
inflater |
LayoutInflater |
container |
ViewGroup |
savedInstanceState |
Bundle |
| Returns | |
|---|---|
View |
|
onViewCreated
public void onViewCreated (View view, Bundle savedInstanceState)
| Parameters | |
|---|---|
view |
View |
savedInstanceState |
Bundle |
setTitle
public void setTitle (CharSequence title)
Set the title to be shown above the preference list
| Parameters | |
|---|---|
title |
CharSequence: Title text to be shown
|