ProferenceActivity 的使用
?
public class ProferenceActivity extends PreferenceActivity implements OnPreferenceChangeListener{@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);addPreferencesFromResource(R.xml.preference);//加载布局文件getPreferenceManager().setSharedPreferencesName("settings");Preference individualNamePreference = findPreference("individual_name"); //得到姓名的preference对象SharedPreferences shaPreferences = individualNamePreference.getSharedPreferences();individualNamePreference.setSummary(shaPreferences.getString("individual_name", ""));if (shaPreferences.getBoolean("yesno_save_indivdual_info", false)) {individualNamePreference.setEnabled(true);} else {individualNamePreference.setEnabled(false);}individualNamePreference.setOnPreferenceChangeListener(this);} //必须重写这个方法,返回值也要为真,不然就不能保存值到xml@Overridepublic boolean onPreferenceChange(Preference preference, Object newValue) { // 设置"姓名"列表项中的summary的值preference.setSummary(String.valueOf(newValue));return true;}@Overridepublic boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,Preference preference) { //判断选中的是否为“是否保存个人信息”列表项的复选框if ("yesno_save_indivdual_info".equals(preference.getKey())) { //设置姓名复选框可选和不可选findPreference("individual_name").setEnabled(!findPreference("individual_name").isEnabled());}return super.onPreferenceTreeClick(preferenceScreen, preference);} }
? ?ProferenceActivity是activity的子类,可保存设置的activity,ProferenceActivity提供了一下常用的控件:
?
?
? ? checkboxpreference,EditTextPreference(点击会弹出一个带edit的对话框),listPrefenrence
?
?
? ? ? android:key="wireless_network"指定key,该属性就是保存到xml中的key-value中的key
? ? 一个设置页面对应一个<preferenceScreen>
? 代码的意思比较明星了,不做其他的解释,可以看下这个博客上的介绍说的还是比较详细:
http://www.cnblogs.com/wservices/archive/2010/07/08/1773449.html
?
? ?