preference activity框架

从android3.0开始preference框架做了重大改变

框架由一下四部分组成

1、preference screen布局

  一个xml文件,指定了要显示的Preference控件。

  每个控件应当至少包含4个属性key,title,summary,default value

2、preference activity和preference fragment

  android3.0以前是preference activity直接包含preference screen。3.0以后,也为了兼容以后的版本,preference fragment包含preference screen,

   preference headers包含preference fragment,preference activity包含headers

  涉及到两个api

 

public class UserPreferenceFragment extends PreferenceFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.userpreferences);
    }
}
public class PreferenceFragmentActivity extends PreferenceActivity {

    @Override
    public void onBuildHeaders(List<Header> target) {
        loadHeadersFromResource(R.xml.preference_headers,target);
    }
}

  

3、preference headers

  也是一个xml资源,描述了fragment在activity中如何分组,显示。每个header读要与一个fragment想关联

  

<preference-headers xmlns:android="http://schemas.android.com/apk/res/android">
    <header android:fragment="com.qunzheng.anim.ui.UserPreferenceFragment"
        android:title="设置"
        android:summary="地震刷新设置"/>
</preference-headers>

4、onPreferenceChangeListener

  preference改变的话触发的事件,当activity与service对preference中的值敏感的话尤其又用。

  

  sp = PreferenceManager.getDefaultSharedPreferences(this);
        sp.registerOnSharedPreferenceChangeListener(new SharedPreferences.OnSharedPreferenceChangeListener() {
            @Override
            public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
                
            }
        });
原文地址:https://www.cnblogs.com/zhengqun/p/4618782.html