Most visited

Recently visited

Added in API level 1

PreferenceActivity

public abstract class PreferenceActivity
extends ListActivity implements PreferenceFragment.OnPreferenceStartFragmentCallback

java.lang.Object
   ↳ android.content.Context
     ↳ android.content.ContextWrapper
       ↳ android.view.ContextThemeWrapper
         ↳ android.app.Activity
           ↳ android.app.ListActivity
             ↳ android.preference.PreferenceActivity


这是向用户显示偏好层次结构的活动的基类。 HONEYCOMB之前,这门课只允许显示一组偏好; 这个功能现在应该在新的PreferenceFragment类中找到。 如果您在旧模式下使用PreferenceActivity,则其中的文档适用于此处不赞成使用的API。

此活动显示一个或多个首选项,每个首选项都与PreferenceFragment关联以显示该首部的首选项。 然而,这些关联的实际布局和显示可能会有所不同; 目前有两种主要方法可能采取:

PreferenceActivity的子类应该实现onBuildHeaders(List ) 以使用所需的项目填充标题列表。 这样做隐式地将类切换为新的“标题+片段”模式,而不是仅显示单个首选项列表的旧样式。

Developer Guides

有关使用 PreferenceActivity信息,请阅读 Settings指南。

Sample Code

以下示例代码显示了一个简单的首选项活动,它具有两组不同的首选项。 由活动本身及其两个偏好片段组成的实现是:

public class PreferenceWithHeaders extends PreferenceActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Add a button to the header list.
        if (hasHeaders()) {
            Button button = new Button(this);
            button.setText("Some action");
            setListFooter(button);
        }
    }

    /**
     * Populate the activity with the top-level headers.
     */
    @Override
    public void onBuildHeaders(List<Header> 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);

            // Make sure default values are applied.  In a real app, you would
            // want this in a shared function that is used to retrieve the
            // SharedPreferences wherever they are needed.
            PreferenceManager.setDefaultValues(getActivity(),
                    R.xml.advanced_preferences, false);

            // Load the preferences from an XML resource
            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);

            // Can retrieve arguments from preference XML.
            Log.i("args", "Arguments: " + getArguments());

            // 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) {
            super.onCreate(savedInstanceState);

            // Can retrieve arguments from headers XML.
            Log.i("args", "Arguments: " + getArguments());

            // Load the preferences from an XML resource
            addPreferencesFromResource(R.xml.preference_dependencies);
        }
    }
}

preference_headers资源描述了要显示的标题以及与它们关联的片段。 它是:

<preference-headers
        xmlns:android="http://schemas.android.com/apk/res/android">

    <header android:fragment="com.example.android.apis.preference.PreferenceWithHeaders$Prefs1Fragment"
            android:icon="@drawable/ic_settings_applications"
            android:title="Prefs 1"
            android:summary="An example of some preferences." />

    <header android:fragment="com.example.android.apis.preference.PreferenceWithHeaders$Prefs2Fragment"
            android:icon="@drawable/ic_settings_display"
            android:title="Prefs 2"
            android:summary="Some other preferences you can see.">
        <!-- Arbitrary key/value pairs can be included with a header as
             arguments to its fragment. -->
        <extra android:name="someKey" android:value="someHeaderValue" />
    </header>

    <header android:icon="@drawable/ic_settings_display"
            android:title="Intent"
            android:summary="Launches an Intent.">
        <intent android:action="android.intent.action.VIEW"
                android:data="http://www.android.com" />
    </header>

</preference-headers>

第一个标题由Prefs1Fragment显示,它由以下XML资源填充:

<PreferenceScreen
        xmlns:android="http://schemas.android.com/apk/res/android">

    <PreferenceCategory
            android:title="@string/inline_preferences">

        <CheckBoxPreference
                android:key="checkbox_preference"
                android:title="@string/title_checkbox_preference"
                android:summary="@string/summary_checkbox_preference" />

    </PreferenceCategory>

    <PreferenceCategory
            android:title="@string/dialog_based_preferences">

        <EditTextPreference
                android:key="edittext_preference"
                android:title="@string/title_edittext_preference"
                android:summary="@string/summary_edittext_preference"
                android:dialogTitle="@string/dialog_title_edittext_preference" />

        <ListPreference
                android:key="list_preference"
                android:title="@string/title_list_preference"
                android:summary="@string/summary_list_preference"
                android:entries="@array/entries_list_preference"
                android:entryValues="@array/entryvalues_list_preference"
                android:dialogTitle="@string/dialog_title_list_preference" />

    </PreferenceCategory>

    <PreferenceCategory
            android:title="@string/launch_preferences">

        <!-- This PreferenceScreen tag sends the user to a new fragment of
             preferences.  If running in a large screen, they can be embedded
             inside of the overall preferences UI. -->
        <PreferenceScreen
                android:fragment="com.example.android.apis.preference.PreferenceWithHeaders$Prefs1FragmentInner"
                android:title="@string/title_fragment_preference"
                android:summary="@string/summary_fragment_preference">
            <!-- Arbitrary key/value pairs can be included for fragment arguments -->
            <extra android:name="someKey" android:value="somePrefValue" />
        </PreferenceScreen>

        <!-- This PreferenceScreen tag sends the user to a completely different
             activity, switching out of the current preferences UI. -->
        <PreferenceScreen
                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" />

        </PreferenceScreen>

    </PreferenceCategory>

    <PreferenceCategory
            android:title="@string/preference_attributes">

        <CheckBoxPreference
                android:key="parent_checkbox_preference"
                android:title="@string/title_parent_preference"
                android:summary="@string/summary_parent_preference" />

        <!-- The visual style of a child is defined by this styled theme attribute. -->
        <CheckBoxPreference
                android:key="child_checkbox_preference"
                android:dependency="parent_checkbox_preference"
                android:layout="?android:attr/preferenceLayoutChild"
                android:title="@string/title_child_preference"
                android:summary="@string/summary_child_preference" />

    </PreferenceCategory>

</PreferenceScreen>

请注意,此XML资源包含一个保存另一个片段的首选项屏幕,此处实现了Prefs1FragmentInner。 这允许用户遍历偏好的层次结构; 按下后会弹出堆栈中的每个片段以返回到先前的首选项。

有关实现片段本身的信息,请参见 PreferenceFragment

Summary

Nested classes

class PreferenceActivity.Header

用户可以选择的单个标题项目的描述。

Constants

String EXTRA_NO_HEADERS

当开始这个活动时,调用的Intent可以包含这个额外的布尔值,不应该显示标题列表。

String EXTRA_SHOW_FRAGMENT

当开始这个活动时,调用的Intent可以包含这个额外的字符串来指定最初应该显示哪个片段。

String EXTRA_SHOW_FRAGMENT_ARGUMENTS

在启动此活动并使用 EXTRA_SHOW_FRAGMENT ,还可以指定此额外参数,以便在初始创建PreferenceActivity期间实例化时提供一个参数Bundle,以传递给该片段。

String EXTRA_SHOW_FRAGMENT_SHORT_TITLE

在开始此活动并使用 EXTRA_SHOW_FRAGMENT ,还可以指定此额外 EXTRA_SHOW_FRAGMENT以提供为该片段显示的简短标题。

String EXTRA_SHOW_FRAGMENT_TITLE

当开始此活动并使用 EXTRA_SHOW_FRAGMENT ,还可以指定此额外 EXTRA_SHOW_FRAGMENT以提供要为该片段显示的标题。

long HEADER_ID_UNDEFINED

Header.id默认值表示未设置标识符值。

Inherited constants

From class android.app.Activity
From class android.content.Context
From interface android.content.ComponentCallbacks2

Inherited fields

From class android.app.Activity

Public constructors

PreferenceActivity()

Public methods

void addPreferencesFromIntent(Intent intent)

此方法在API级别11中已弃用。此函数与现代基于片段的PreferenceActivity无关。

void addPreferencesFromResource(int preferencesResId)

此方法在API级别11中已弃用。此函数与现代基于片段的PreferenceActivity无关。

Preference findPreference(CharSequence key)

此方法在API级别11中已弃用。此函数与现代基于片段的PreferenceActivity无关。

void finishPreferencePanel(Fragment caller, int resultCode, Intent resultData)

由首选项面板片段调用以完成其自身。

PreferenceManager getPreferenceManager()

此方法在API级别11中已弃用。此函数与现代基于片段的PreferenceActivity无关。

PreferenceScreen getPreferenceScreen()

此方法在API级别11中已弃用。此函数与现代基于片段的PreferenceActivity无关。

boolean hasHeaders()

如果此活动当前正在显示标题列表,则返回true。

void invalidateHeaders()

当您需要更改正在显示的标题时呼叫。

boolean isMultiPane()

如果此活动显示多个窗格 - 标题和首选项片段,则返回true。

void loadHeadersFromResource(int resid, List<PreferenceActivity.Header> target)

将给定的XML文件解析为标题描述,将每个已解析的标题添加到目标列表中。

void onBuildHeaders(List<PreferenceActivity.Header> target)

当活动需要构建标题列表时调用。

Intent onBuildStartFragmentIntent(String fragmentName, Bundle args, int titleRes, int shortTitleRes)

在单窗格模式下由 startWithFragment(String, Bundle, Fragment, int, int, int)调用时,要构建一个意图以启动显示所选片段的新活动。

void onContentChanged()

内容更改时更新屏幕状态(当前列表和其他视图)。

PreferenceActivity.Header onGetInitialHeader()

调用以确定要显示的初始标题。

PreferenceActivity.Header onGetNewHeader()

在标题列表更新后调用( onBuildHeaders(List ) 已被调用并返回到 invalidateHeaders() )以指定现在应该选择的标题。

void onHeaderClick(PreferenceActivity.Header header, int position)

当用户在标题列表中选择一个项目时调用。

boolean onIsHidingHeaders()

调用以确定是否应该隐藏标题列表。

boolean onIsMultiPane()

调用以确定活动是否应以多窗格模式运行。

boolean onPreferenceStartFragment(PreferenceFragment caller, Preference pref)

当用户点击一个具有与其关联的片段类名的首选项时调用。

boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference)

此方法在API级别11中已弃用。此函数与现代基于片段的PreferenceActivity无关。

void setListFooter(View view)

设置应显示在标题列表底部的页脚。

void setParentTitle(CharSequence title, CharSequence shortTitle, View.OnClickListener listener)

应在onCreate之后调用以确保创建面包屑(如果有的话)。

void setPreferenceScreen(PreferenceScreen preferenceScreen)

此方法在API级别11中已弃用。此函数与现代基于片段的PreferenceActivity无关。

void showBreadCrumbs(CharSequence title, CharSequence shortTitle)

更改当前首选项的面包屑的基本标题。

void startPreferenceFragment(Fragment fragment, boolean push)

开始一个新的片段。

void startPreferencePanel(String fragmentClass, Bundle args, int titleRes, CharSequence titleText, Fragment resultTo, int resultRequestCode)

开始一个包含首选项面板的新片段。

void startWithFragment(String fragmentName, Bundle args, Fragment resultTo, int resultRequestCode, int titleRes, int shortTitleRes)

开始此活动的新实例,仅显示给定的首选项片段。

void startWithFragment(String fragmentName, Bundle args, Fragment resultTo, int resultRequestCode)

startWithFragment(String, Bundle, Fragment, int, int, int)但使用0 titleRes。

void switchToHeader(String fragmentName, Bundle args)

在双窗格模式下时,切换片段窗格以显示给定的首选项片段。

void switchToHeader(PreferenceActivity.Header header)

在双窗格模式下,切换到片段窗格以显示给定的首选项片段。

Protected methods

boolean isValidFragment(String fragmentName)

子类应该重写此方法,并验证给定片段是否附加到此活动的有效类型。

void onActivityResult(int requestCode, int resultCode, Intent data)

当您启动的活动退出时调用,为您提供您启动的requestCode,返回的resultCode以及其中的任何其他数据。

void onCreate(Bundle savedInstanceState)

当活动开始时调用。

void onDestroy()

在活动销毁之前执行任何最终清理。

void onListItemClick(ListView l, View v, int position, long id)

当选择列表中的项目时,将调用此方法。

void onNewIntent(Intent intent)

这是针对在其软件包中将launchMode设置为“singleTop”的活动,或者如果客户在拨打 startActivity(Intent)时使用了 FLAG_ACTIVITY_SINGLE_TOP标志。

void onRestoreInstanceState(Bundle state)

确保在活动恢复所有视图状态之前创建了列表视图。

void onSaveInstanceState(Bundle outState)

在被杀死之前调用以从活动中检索每个实例的状态,以便可以在 onCreate(Bundle)onRestoreInstanceState(Bundle) (由此方法填充的 Bundle将传递给两者)中恢复状态。

void onStop()

当用户不再可见时调用。

Inherited methods

From class android.app.ListActivity
From class android.app.Activity
From class android.view.ContextThemeWrapper
From class android.content.ContextWrapper
From class android.content.Context
From class java.lang.Object
From interface android.view.LayoutInflater.Factory2
From interface android.view.Window.Callback
From interface android.view.KeyEvent.Callback
From interface android.view.View.OnCreateContextMenuListener
From interface android.content.ComponentCallbacks2
From interface android.preference.PreferenceFragment.OnPreferenceStartFragmentCallback
From interface android.view.LayoutInflater.Factory
From interface android.content.ComponentCallbacks

Constants

EXTRA_NO_HEADERS

Added in API level 11
String EXTRA_NO_HEADERS

当开始这个活动时,调用的Intent可以包含这个额外的布尔值,不应该显示标题列表。 这通常与EXTRA_SHOW_FRAGMENT结合使用来启动该活动以显示用户已导航到的特定片段。

常量值:“:android:no_headers”

EXTRA_SHOW_FRAGMENT

Added in API level 11
String EXTRA_SHOW_FRAGMENT

当开始这个活动时,调用的Intent可以包含这个额外的字符串来指定最初应该显示哪个片段。

Starting from Key Lime Pie, when this argument is passed in, the PreferenceActivity will call isValidFragment() to confirm that the fragment class name is valid for this activity.

常量值:“:android:show_fragment”

EXTRA_SHOW_FRAGMENT_ARGUMENTS

Added in API level 11
String EXTRA_SHOW_FRAGMENT_ARGUMENTS

当启动此活动并使用 EXTRA_SHOW_FRAGMENT ,还可以指定此额外参数,以便在PreferenceActivity的初始创建过程中实例化时提供一个参数的Bundle以传递给该片段。

常量值:“:android:show_fragment_args”

EXTRA_SHOW_FRAGMENT_SHORT_TITLE

Added in API level 14
String EXTRA_SHOW_FRAGMENT_SHORT_TITLE

在开始此活动并使用 EXTRA_SHOW_FRAGMENT ,还可以指定此附加内容以提供为该片段显示的简短标题。

常量值:“:android:show_fragment_short_title”

EXTRA_SHOW_FRAGMENT_TITLE

Added in API level 14
String EXTRA_SHOW_FRAGMENT_TITLE

当开始此活动并使用 EXTRA_SHOW_FRAGMENT ,还可以指定此额外 EXTRA_SHOW_FRAGMENT以提供要为该片段显示的标题。

常量值:“:android:show_fragment_title”

HEADER_ID_UNDEFINED

Added in API level 11
long HEADER_ID_UNDEFINED

Header.id默认值表示未设置标识符值。 所有其他值(包括低于-1的值)都是有效的。

常量值:-1(0xffffffffffffffff)

Public constructors

PreferenceActivity

Added in API level 1
PreferenceActivity ()

Public methods

addPreferencesFromIntent

Added in API level 1
void addPreferencesFromIntent (Intent intent)

此方法在API级别11中已弃用。
此功能与现代基于片段的PreferenceActivity无关。

添加与给定 Intent匹配的活动的首选项。

Parameters
intent Intent: The Intent to query activities.

addPreferencesFromResource

Added in API level 1
void addPreferencesFromResource (int preferencesResId)

此方法在API级别11中已弃用。
此功能与现代基于片段的PreferenceActivity无关。

使给定的XML资源膨胀并将偏好层次结构添加到当前偏好层次结构中。

Parameters
preferencesResId int: The XML resource ID to inflate.

findPreference

Added in API level 1
Preference findPreference (CharSequence key)

此方法在API级别11中已弃用。
此功能与现代基于片段的PreferenceActivity无关。

根据其密钥找到 Preference

Parameters
key CharSequence: The key of the preference to retrieve.
Returns
Preference The Preference with the key, or null.

也可以看看:

finishPreferencePanel

Added in API level 11
void finishPreferencePanel (Fragment caller, 
                int resultCode, 
                Intent resultData)

由首选项面板片段调用以完成其自身。

Parameters
caller Fragment: The fragment that is asking to be finished.
resultCode int: Optional result code to send back to the original launching fragment.
resultData Intent: Optional result data to send back to the original launching fragment.

getPreferenceManager

Added in API level 1
PreferenceManager getPreferenceManager ()

此方法在API级别11中已弃用。
此功能与现代基于片段的PreferenceActivity无关。

返回此活动使用的 PreferenceManager

Returns
PreferenceManager The PreferenceManager.

getPreferenceScreen

Added in API level 1
PreferenceScreen getPreferenceScreen ()

此方法在API级别11中已弃用。
此功能与现代基于片段的PreferenceActivity无关。

获取此活动显示的首选项层次的根。

Returns
PreferenceScreen The PreferenceScreen that is the root of the preference hierarchy.

hasHeaders

Added in API level 11
boolean hasHeaders ()

如果此活动当前正在显示标题列表,则返回true。

Returns
boolean

invalidateHeaders

Added in API level 11
void invalidateHeaders ()

当您需要更改正在显示的标题时呼叫。 稍后将调用onBuildHeaders()来检索新列表。

isMultiPane

Added in API level 11
boolean isMultiPane ()

如果此活动显示多个窗格 - 标题和首选项片段,则返回true。

Returns
boolean

loadHeadersFromResource

Added in API level 11
void loadHeadersFromResource (int resid, 
                List<PreferenceActivity.Header> target)

将给定的XML文件解析为标题描述,将每个已解析的标题添加到目标列表中。

Parameters
resid int: The XML resource to load and parse.
target List: The list in which the parsed headers should be placed.

onBuildHeaders

Added in API level 11
void onBuildHeaders (List<PreferenceActivity.Header> target)

当活动需要构建标题列表时调用。 通过执行此操作并将至少一个项目添加到列表中,您将使活动以其现代片段模式运行。 请注意,此功能可能并不总是被调用; 例如,如果活动被要求显示没有标题列表的特定片段,则不需要构建标题。

典型的实现将使用 loadHeadersFromResource(int, List ) 来从资源填充列表。

Parameters
target List: The list in which to place the headers.

onBuildStartFragmentIntent

Added in API level 14
Intent onBuildStartFragmentIntent (String fragmentName, 
                Bundle args, 
                int titleRes, 
                int shortTitleRes)

在单窗格模式下由startWithFragment(String, Bundle, Fragment, int, int, int)调用时,要构建一个意图以启动显示所选片段的新活动。 默认实现构造一个Intent,它用适当的参数重新启动当前活动以显示片段。

Parameters
fragmentName String: The name of the fragment to display.
args Bundle: Optional arguments to supply to the fragment.
titleRes int: Optional resource ID of title to show for this item.
shortTitleRes int: Optional resource ID of short title to show for this item.
Returns
Intent Returns an Intent that can be launched to display the given fragment.

onContentChanged

Added in API level 1
void onContentChanged ()

内容更改时更新屏幕状态(当前列表和其他视图)。

onGetInitialHeader

Added in API level 11
PreferenceActivity.Header onGetInitialHeader ()

调用以确定要显示的初始标题。 默认实现只是返回第一个头的片段。 请注意,返回的Header对象实际上并不需要存在于您的头文件列表中 - 无论它的片段是什么,它都将仅用于显示初始UI。

Returns
PreferenceActivity.Header

onGetNewHeader

Added in API level 11
PreferenceActivity.Header onGetNewHeader ()

在标题列表更新后调用( onBuildHeaders(List ) 已被调用并返回到invalidateHeaders() )以指定现在应该选择的标题。 默认实现返回null以保持当前选择的标题。

Returns
PreferenceActivity.Header

onHeaderClick

Added in API level 11
void onHeaderClick (PreferenceActivity.Header header, 
                int position)

当用户在标题列表中选择一个项目时调用。 默认实现将根据需要调用startWithFragment(String, Bundle, Fragment, int, int, int)switchToHeader(Header)

Parameters
header PreferenceActivity.Header: The header that was selected.
position int: The header's position in the list.

onIsHidingHeaders

Added in API level 11
boolean onIsHidingHeaders ()

调用以确定是否应该隐藏标题列表。 默认实现返回EXTRA_NO_HEADERS给出的值,如果未提供,则返回false。 例如,当该活动正在重新启动以显示特定的偏好活动时,它将被设置为false。

Returns
boolean

onIsMultiPane

Added in API level 11
boolean onIsMultiPane ()

调用以确定活动是否应以多窗格模式运行。 如果屏幕足够大,则默认实现返回true。

Returns
boolean

onPreferenceStartFragment

Added in API level 11
boolean onPreferenceStartFragment (PreferenceFragment caller, 
                Preference pref)

当用户点击一个具有与其关联的片段类名的首选项时调用。 实现应该实例化并切换到给定片段的实例。

Parameters
caller PreferenceFragment
pref Preference
Returns
boolean

onPreferenceTreeClick

Added in API level 1
boolean onPreferenceTreeClick (PreferenceScreen preferenceScreen, 
                Preference preference)

此方法在API级别11中已弃用。
此功能与现代基于片段的PreferenceActivity无关。

Parameters
preferenceScreen PreferenceScreen
preference Preference
Returns
boolean

setListFooter

Added in API level 11
void setListFooter (View view)

设置应显示在标题列表底部的页脚。

Parameters
view View

setParentTitle

Added in API level 11
void setParentTitle (CharSequence title, 
                CharSequence shortTitle, 
                View.OnClickListener listener)

应在onCreate之后调用以确保创建面包屑(如果有的话)。 这会为片段面包屑添加一个标题,并将监听器附加到父项上的任何点击。

Parameters
title CharSequence: the title for the breadcrumb
shortTitle CharSequence: the short title for the breadcrumb
listener View.OnClickListener

setPreferenceScreen

Added in API level 1
void setPreferenceScreen (PreferenceScreen preferenceScreen)

此方法在API级别11中已弃用。
此功能与现代基于片段的PreferenceActivity无关。

设置此活动显示的偏好层次的根。

Parameters
preferenceScreen PreferenceScreen: The root PreferenceScreen of the preference hierarchy.

showBreadCrumbs

Added in API level 11
void showBreadCrumbs (CharSequence title, 
                CharSequence shortTitle)

更改当前首选项的面包屑的基本标题。 这通常会要求你。 有关更多信息,请参阅FragmentBreadCrumbs

Parameters
title CharSequence
shortTitle CharSequence

startPreferenceFragment

Added in API level 11
void startPreferenceFragment (Fragment fragment, 
                boolean push)

开始一个新的片段。

Parameters
fragment Fragment: The fragment to start
push boolean: If true, the current fragment will be pushed onto the back stack. If false, the current fragment will be replaced.

startPreferencePanel

Added in API level 11
void startPreferencePanel (String fragmentClass, 
                Bundle args, 
                int titleRes, 
                CharSequence titleText, 
                Fragment resultTo, 
                int resultRequestCode)

开始一个包含首选项面板的新片段。 如果首选项以多窗格模式显示,则给定的片段类将被实例化并放置在适当的窗格中。 如果以单窗格模式运行,将启动一个新的活动以显示片段。

Parameters
fragmentClass String: Full name of the class implementing the fragment.
args Bundle: Any desired arguments to supply to the fragment.
titleRes int: Optional resource identifier of the title of this fragment.
titleText CharSequence: Optional text of the title of this fragment.
resultTo Fragment: Optional fragment that result data should be sent to. If non-null, resultTo.onActivityResult() will be called when this preference panel is done. The launched panel must use finishPreferencePanel(Fragment, int, Intent) when done.
resultRequestCode int: If resultTo is non-null, this is the caller's request code to be received with the result.

startWithFragment

Added in API level 14
void startWithFragment (String fragmentName, 
                Bundle args, 
                Fragment resultTo, 
                int resultRequestCode, 
                int titleRes, 
                int shortTitleRes)

开始此活动的新实例,仅显示给定的首选项片段。 在此模式下启动时,标题列表将被隐藏,给定的首选项片段将被实例化并填充整个活动。

Parameters
fragmentName String: The name of the fragment to display.
args Bundle: Optional arguments to supply to the fragment.
resultTo Fragment: Option fragment that should receive the result of the activity launch.
resultRequestCode int: If resultTo is non-null, this is the request code in which to report the result.
titleRes int: Resource ID of string to display for the title of this set of preferences.
shortTitleRes int: Resource ID of string to display for the short title of this set of preferences.

startWithFragment

Added in API level 11
void startWithFragment (String fragmentName, 
                Bundle args, 
                Fragment resultTo, 
                int resultRequestCode)

startWithFragment(String, Bundle, Fragment, int, int, int)但使用0 titleRes。

Parameters
fragmentName String
args Bundle
resultTo Fragment
resultRequestCode int

switchToHeader

Added in API level 11
void switchToHeader (String fragmentName, 
                Bundle args)

在双窗格模式下时,切换片段窗格以显示给定的首选项片段。

Parameters
fragmentName String: The name of the fragment to display.
args Bundle: Optional arguments to supply to the fragment.

switchToHeader

Added in API level 11
void switchToHeader (PreferenceActivity.Header header)

在双窗格模式下,切换到片段窗格以显示给定的首选项片段。

Parameters
header PreferenceActivity.Header: The new header to display.

Protected methods

isValidFragment

Added in API level 19
boolean isValidFragment (String fragmentName)

子类应该重写此方法,并验证给定片段是否附加到此活动的有效类型。 默认实现返回true了专为应用android:targetSdkVersion比老KITKAT 对于更高版本,它会抛出异常。

Parameters
fragmentName String: the class name of the Fragment about to be attached to this activity.
Returns
boolean true if the fragment class name is valid for this Activity and false otherwise.

onActivityResult

Added in API level 1
void onActivityResult (int requestCode, 
                int resultCode, 
                Intent data)

当您启动的活动退出时调用,为您提供您启动的requestCode,返回的resultCode以及其中的任何其他数据。 如果活动显式返回该结果,未返回任何结果或在其操作期间崩溃, resultCode将为RESULT_CANCELED

当您的活动重新开始时,您将在onResume()之前立即收到此电话。

如果你的活动设置,该方法不会调用 noHistorytrue

Parameters
requestCode int: The integer request code originally supplied to startActivityForResult(), allowing you to identify who this result came from.
resultCode int: The integer result code returned by the child activity through its setResult().
data Intent: An Intent, which can return result data to the caller (various data can be attached to Intent "extras").

onCreate

Added in API level 1
void onCreate (Bundle savedInstanceState)

当活动开始时调用。 这是大多数初始化应该去的地方:调用setContentView(int)setContentView(int)活动的UI,使用findViewById(int)以编程方式与UI中的小部件进行交互,调用managedQuery(android.net.Uri, String[], String, String[], String)以检索显示的数据的光标等。

您可以拨打 finish()从这个函数中,在这种情况下的onDestroy()将被立即调用没有任何活动的生命周期(其余的 onStart()onResume()onPause()执行等)。

派生类必须调用超类的这个方法的实现。 如果他们不这样做,就会抛出异常。

Parameters
savedInstanceState Bundle: If the activity is being re-initialized after previously being shut down then this Bundle contains the data it most recently supplied in onSaveInstanceState(Bundle). Note: Otherwise it is null.

onDestroy

Added in API level 1
void onDestroy ()

在活动销毁之前执行任何最终清理。 这可能是由于活动正在完成(有人称为finish() ,或者系统暂时销毁此活动的实例以节省空间),您可以使用isFinishing()方法区分这两种情况。

注意:不要将此方法称为保存数据的地方! 例如,如果一个活动正在编辑内容提供者中的数据,那么这些编辑应该在onPause()onSaveInstanceState(Bundle) ,而不是在这里onSaveInstanceState(Bundle) 这种方法通常被实现为释放资源,例如与活动相关联的线程,这样一个被销毁的活动就不会离开这些东西,而其他应用程序仍在运行。 在某些情况下,系统只会在不调用该方法(或任何其他方法)的情况下终止该活动的托管过程,因此不应该将其用于在过程消失后执行那些旨在保留的事情。

派生类必须调用超类的这个方法的实现。 如果他们不这样做,就会抛出异常。

onListItemClick

Added in API level 1
void onListItemClick (ListView l, 
                View v, 
                int position, 
                long id)

当选择列表中的项目时,将调用此方法。 子类应该重写。 如果子类需要访问与选定项相关的数据,它们可以调用getListView()。getItemAtPosition(position)。

Parameters
l ListView: The ListView where the click happened
v View: The view that was clicked within the ListView
position int: The position of the view in the list
id long: The row id of the item that was clicked

onNewIntent

Added in API level 1
void onNewIntent (Intent intent)

这是针对在其包中将launchMode设置为“singleTop”的活动,或者如果客户在拨打startActivity(Intent)时使用了FLAG_ACTIVITY_SINGLE_TOP标志。 在这两种情况下,当活动在活动堆栈顶部重新启动时,而不是启动活动的新实例时,将使用用于重新启动的Intent在现有实例上调用onNewIntent()它。

在接收新的意图之前,活动总是会暂停,因此您可以依靠在此方法后调用 onResume()

请注意, getIntent()仍会返回原始意图。 您可以使用setIntent(Intent)将其更新为新的Intent。

Parameters
intent Intent: The new intent that was started for the activity.

onRestoreInstanceState

Added in API level 1
void onRestoreInstanceState (Bundle state)

确保在活动恢复所有视图状态之前创建了列表视图。

Parameters
state Bundle: the data most recently supplied in onSaveInstanceState(Bundle).

onSaveInstanceState

Added in API level 1
void onSaveInstanceState (Bundle outState)

被调用以在被杀死之前从活动检索每个实例状态,以便可以在 onCreate(Bundle)onRestoreInstanceState(Bundle)恢复状态(由此方法填充的 Bundle将被传递给两者)。

在一个活动可能被杀死之前调用这个方法,以便在将来它有一段时间它可以恢复它的状态。 例如,如果活动B在活动A之前启动,并且在某些时刻活动A被杀死以回收资源,则活动A将有机会通过此方法保存其用户界面的当前状态,以便当用户返回时到活动A,用户界面的状态可以通过onCreate(Bundle)onRestoreInstanceState(Bundle)来恢复。

不要将此方法与活动生命周期回调(如onPause() ,后者始终在活动置于后台或销毁途中调用,或在销毁前调用onStop() 调用onPause()onStop()一个示例是,而不是此方法是用户从活动B返回到活动A时:不需要在B上调用onSaveInstanceState(Bundle) ,因为该特定实例永远不会被恢复,因此系统可避免调用它。 onPause()被调用时的一个示例,而不是onSaveInstanceState(Bundle)是活动B在活动A前面启动时的示例A:如果活动A在A的用户界面的状态期间未在B的生命周期中被onSaveInstanceState(Bundle) ,则可以避免在活动A上调用onSaveInstanceState(Bundle)将保持完好。

默认实现通过在具有ID的层次结构中的每个视图上调用onSaveInstanceState() ,并通过保存当前焦点视图的ID(所有视图都由缺省实现恢复)来为您处理大部分UI每个实例状态onRestoreInstanceState(Bundle) )。 如果您重写此方法以保存未被每个视图捕获的附加信息,那么您可能需要调用默认实现,否则应准备好保存每个视图的所有状态。

如果调用,则此方法将在onStop()之前onStop() onPause()之前或之后是否会发生,并不能保证。

Parameters
outState Bundle: Bundle in which to place your saved state.

onStop

Added in API level 1
void onStop ()

当用户不再可见时调用。 接下来,您将收到无论是onRestart()onDestroy() ,或没有,这取决于后来的用户活动。

派生类必须调用超类的这个方法的实现。 如果他们不这样做,就会抛出异常。

Hooray!