具体与Preference的用法类似,这里就不做过多解释,直接贴示例代码,需要在res下新建xml文件夹,在xml文件夹下添加xml文件。

  xml:(注意:root节点是:PreferenceScreen)

 <?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 类别 -->
<PreferenceCategory
android:key="mylocation"
android:summary="我的位置源"
android:title="我的位置" > <!-- 可以加各种其他控件如 :CheckBoxPreference -->
<CheckBoxPreference
android:key="wireless_network"
android:summary="使用无线网络查看应用程序(例如Google地图中的位置)"
android:title="使用无线网络" />
<CheckBoxPreference
android:key="gps_satellite_setting"
android:summary="定位时,精确到接到级别(取消选择可节约电量)"
android:title="启用GPS卫星导航" />
</PreferenceCategory>
<PreferenceCategory
android:key="myMessage"
android:summary="个人信息设置"
android:title="个人信息设置" >
<CheckBoxPreference
android:key="yesno_save_individual_info"
android:title="是否保存个人信息" /> <EditTextPreference
android:key="individual_name"
android:summary="请输入真实姓名"
android:title="姓名" /> <ListPreference
android:entries="@array/citys"
android:entryValues="@array/citys"
android:key="mycity"
android:summary="所属城市"
android:title="城市列表" />
</PreferenceCategory> </PreferenceScreen>

setting.xml

  activity

 package com.example.android_data_storage_share2;

 import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.EditTextPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceActivity;
import android.preference.PreferenceScreen;
import android.widget.Toast; /**
* @author xiaowu
* @NOTE: 状态改变后的自动文件存储 需要继承PreferenceActivity的类和实现OnPreferenceChangeListener接口,重写onPreferenceTreeClick方法进行业务逻辑处理
*/
public class MainActivity extends PreferenceActivity implements
OnPreferenceChangeListener { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
// 加载设置的底层界面 API11之前可以使用下面的方式,而高版本使用perferenceFragment,
addPreferencesFromResource(R.xml.setting);
//得到屏幕管理器并设置它的名称
// getPreferenceManager().setSharedPreferencesName("mysetting2");
// addPreferencesFromResource(R.xml.mysetting);
} // 通过preference找到某个节点
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
// TODO Auto-generated method stub
return false;
} // 如果需要勾选一项后,其他项不可用,需要重写方法onPreferenceTreeClick(PreferenceScreen
// preferenceScreen,Preference preference),并在该方法中处理业务逻辑
@Override
@Deprecated
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
Preference preference) {
if ("yesno_save_individual_info".equals(preference.getKey())) {
CheckBoxPreference checkBoxPreference = (CheckBoxPreference) findPreference("yesno_save_individual_info");
EditTextPreference editTextPreference = (EditTextPreference) findPreference("individual_name");
editTextPreference.setEnabled(checkBoxPreference.isChecked());
// ListPreference listPreference = (ListPreference)
// findPreference("mycity");
// listPreference.setEnabled(false);
}
// TODO Auto-generated method stub
return super.onPreferenceTreeClick(preferenceScreen, preference);
} }

  效果展示:

  

最新文章

  1. 通过sails和阿里大于实现短信验证
  2. android px转换为dip/dp
  3. Neusoft(3)增加自己的内核模块
  4. python通过ip获取地址
  5. Unity Shader:Blur
  6. 字符串(后缀数组):POJ 3415 Common Substrings
  7. Spring+SpringMVC+MyBatis深入学习及搭建(三)——MyBatis全局配置文件解析
  8. selenium+python环境的搭建的自动化测试
  9. ASP.NET MVC HttpPostedFileBase文件上传
  10. Eclipse运行Java简单实例
  11. Eclipse 搭建 Strust2开发环境
  12. &quot;敏捷革命&quot;读书笔记
  13. Canvas 和 SVG 的不同
  14. 第三个Sprint ------第六天
  15. C++ VC实现对话框窗口任意分割
  16. web项目页面加载时,下拉框有值
  17. dcoker常用命令
  18. JSTL核心标签
  19. android 自己定义组合控件
  20. SMTPSenderRefused: (530, ‘5.5.1 Authentication Required. Learn more at \n5.5.1

热门文章

  1. css菜鸟之HTML 中块级元素设置 height:100% 的实现
  2. LAMP 1.5 测试PHP解析 问题解决
  3. [51nod1212]最小生成树模板
  4. 6.docker常用命令
  5. 【mysql--sql语句小问题总结】
  6. 微信小程序open-data获取用户的信息样式设置
  7. EasyUI+MVC4实现后台管理系统一:登陆和进入后台界面
  8. iOS通过SocketRocket实现websocket的即时聊天
  9. 表单和css
  10. vue的预渲染--seo