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