数据共享总结---Preference
2015-03-16

If you want to provide settings for your app, you should use Android's Preference APIs to build an interface that's consistent with the user experience in other Android apps。

首先在res目录下新建名为“xml”文件夹,在xml文件夹下新建一个Resource Type为:preference的xml
<?xml version="1.0" encoding="utf-8"?>
<!-- PreferenceScreen必须为根节点,你可以在这里面添加Preference -->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- Preference的类别 -->
<PreferenceCategory 
    android:key="mymessage"
    android:summary="个人信息设置"
    android:title="个人信息设置">
    <!-- 多选框Preference -->
    <CheckBoxPreference 
        android:key="yes"
        android:title="是否保存个人信息"/>
    <CheckBoxPreference 
        android:key="no"
        android:title="是否保存个人信息"/>
</PreferenceCategory>
</PreferenceScreen>
写完xml,需要在Activity继承PreferenceActivity并且实现OnPreferenceChangeListener接口。
在OnCreate方法里面将setContentView替换成addPreferencesFromResource(R.xml.setting2);方法
如果想对每个Preference设置触发事件则覆盖
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
Preference preference) {
// TODO Auto-generated method stub
if(preference.getKey().equals("yes")){
CheckBoxPreference checkPreference = (CheckBoxPreference) findPreference("no");
Toast.makeText(this, checkPreference.isChecked()+"", 0).show();
}
return super.onPreferenceTreeClick(preferenceScreen, preference);
}
当你对每个Preference操作之后就会在/data/data/包名/shared_prefs目录下生成xml文件,如果你没有为这个xml命名,则默认为包名.xml
getPreferenceManager().setSharedPreferencesName("setting2");这个方法是将所生成的xml,命名为setting2.xml