Settings.java这个文件,这个类继承于PreferenceActivity。
摘一下开发文档上的话:
This activity (PreferenceActivity)shows one or more headers of preferences
- On a small screen it may display only the headers as a single list when first launched. Selecting one of the header items will re-launch the activity with it only showing the PreferenceFragment of that header.
- On a large screen in may display both the headers and current PreferenceFragment together as panes. Selecting a header item switches to showing the correct PreferenceFragment for that item.
PreferenceActivity的子类必须要实现的方法如下:
public void onBuildHeaders(List<Header> headers) {
loadHeadersFromResource(R.xml.settings_headers, headers);
updateHeaderList(headers);
}
这里通过
loadHeadersFromResource
方法将xml中的header项解析,填充到header list中
<header
android:id="@+id/wifi_settings"
android:fragment="com.android.settings.wifi.WifiSettings"
android:title="@string/wifi_settings_title"
android:icon="@drawable/ic_settings_wireless" />
通过android:fragment属性将每一个header和PreferenceFragment联系起来,这也就应了Android开发文档中的描述了。