PreferenceActivity和PreferenceFragment对比

PreferenceActivity 负责加载选项列表界面布局文件

选项列表布局文件是以preference-headers作为根标签 header 作为子标签常用的属性有android:ico指定选项的图标,android:title指定选项的标题,android:summary指定选项的说明

PreferenceActivity使用界面布局文件的方式是:重写PreferenceActivity.onBuildHeaders(List

target)并在方法中调用loadHeadersFromResource(R.xml.preference, target)方法加载布局文件

PreferenceFragment 负责加载选项设置界面布局文件

选项设置布局文件是以PreferenceScreen作为根标签,PreferenceCategory、CheckBoxPreference、EditTextPreference、ListPreference、SwitchPreference作为子标签

PreferenceFragment使用界面布局文件的方式是:重写onCreate(Bundle savedInstanceState)

并在方法中调用addPreferenceFromResource(R.xml.preference_option);

使用PreferenceActivity的步骤

1. 创建一个选项列表界面布局文件

A.在res目录上右击,在弹出的快捷菜单上选择new->Android Resource File,然后在弹出的对话框选择Resource type 为xml,Root element:选择preference-headers,然后输入File name 点击ok按钮

2. 创建一个Activity并继承PreferenceActivity

3. 重写PreferenceActivity的onBuildHeaders方法并在方法中调用loadHeadersFromResource()方法加载布局文件

代码如下:

package com.example.filedemo;

import android.os.Bundle;
import android.preference.PreferenceActivity;

import java.util.List;

public class PreferenceTestActivity extends PreferenceActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public void onBuildHeaders(List target) {
        super.onBuildHeaders(target);
        loadHeadersFromResource(R.xml.preference_list, target);
    }

    @Override
    protected boolean isValidFragment(String fragmentName) {
        return true;
    }
}

使用PreferenceFragment的步骤

1. 创建一个选项设置界面布局文件

A.在res目录上右击,在弹出的快捷菜单上选择new->Android Resource File,然后在弹出的对话框选择Resource type 为xml,Root element:选择PreferenceScreen,然后输入File name 点击ok按钮

2. 创建一个Fragment并继承PreferenceFragment

3. 重写PreferenceFragment的onCreate方法并在方法中调用addPreferenceFromResource()方法加载布局文件

代码如下:

package com.example.filedemo;


import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.support.annotation.Nullable;

public class BlankFragment extends PreferenceFragment {

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preference_option);
    }
}

 

你可能感兴趣的:(Android)