preference activity框架

时间:2022-08-06 07:03:30

从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) { }
});