BluetoothSetting.java 这个界面的入口方法:
void addPreferencesForActivity() {
addPreferencesFromResource(R.xml.bluetooth_settings);
……
}
bluetooth_settings.xml 这个界面仅仅只是一个 PreferenceScreen
蓝牙的设置界面初看有些复杂,但如果熟悉android4.0新的界面属性Fragment,就会容易许多,我们先来看 BluetoothSettings.java
class BluetoothSettings extends DeviceListPreferenceFragment
首先BluetoothSettings是继承DeviceListPreferenceFragment,从命名看以看出它一个List,
而DeviceListPreferenceFragment extends SettingsPreferenceFragment
SettingsPreferenceFragment extends PreferenceFragment
PreferenceFragment extends Fragment
从这里可以看出BluetoothSetting.java 是一个Fragment,而且是一个具有List类型的Fragment,Fragment的是一种特殊的界面,它允许我们自已的添另,而BluetoothSetting里也是这样,正是自由添加新的PreferenceGroup,从而实现蓝牙设置界面的更新的,方法是addDeviceCategory(),这个方法的主要功能除了新增界面内容外,还有对应的标题,设置数据源(通过filter),从面实现这个界面的更新。