界面XML文件:preference_setting.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
  3. <PreferenceCategory android:title="我的位置源">
  4. <CheckBoxPreference
  5. android:key="my_wireless_network"
  6. android:title="使用无线电"
  7. android:summary="使用无线网络查看应用程序(例如Google地图)中的位置"
  8. />
  9. <CheckBoxPreference
  10. android:key="my_gps_satellite_setting"
  11. android:title="启用GPS卫星设置"
  12. android:summary="定位时,精确到街道级别(取消选择可节约电量)"
  13. />
  14. </PreferenceCategory>
  15. <PreferenceCategory android:title="个人信息设置">
  16. <CheckBoxPreference
  17. android:key="my_yesno_save_individual_info"
  18. android:title="是否保存个人信息"
  19. />
  20. <EditTextPreference
  21. android:key="my_individual_name"
  22. android:title="姓名"
  23. android:summary="请输入真实姓名"
  24. />
  25. <PreferenceScreen
  26. android:key="my_other_individual_msg"
  27. android:title="其他个人信息"
  28. android:summary="是否工作、手机">
  29. <CheckBoxPreference
  30. android:key="my_is_an_employee"
  31. android:title="是否工作"
  32. />
  33. <EditTextPreference
  34. android:key="my_mobile"
  35. android:title="手机"
  36. android:summary="请输入您的手机号码"
  37. />
  38. </PreferenceScreen>
  39. </PreferenceCategory>
  40. </PreferenceScreen>

<?xml version="1.0" encoding="UTF-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="我的位置源">
<CheckBoxPreference
android:key="my_wireless_network"
android:title="使用无线电"
android:summary="使用无线网络查看应用程序(例如Google地图)中的位置"
/>
<CheckBoxPreference
android:key="my_gps_satellite_setting"
android:title="启用GPS卫星设置"
android:summary="定位时,精确到街道级别(取消选择可节约电量)"
/>
</PreferenceCategory>

<PreferenceCategory android:title="个人信息设置">
<CheckBoxPreference
android:key="my_yesno_save_individual_info"
android:title="是否保存个人信息"
/>
<EditTextPreference
android:key="my_individual_name"
android:title="姓名"
android:summary="请输入真实姓名"
/>
<PreferenceScreen
android:key="my_other_individual_msg"
android:title="其他个人信息"
android:summary="是否工作、手机">
<CheckBoxPreference
android:key="my_is_an_employee"
android:title="是否工作"
/>
<EditTextPreference
android:key="my_mobile"
android:title="手机"
android:summary="请输入您的手机号码"
/>
</PreferenceScreen>
</PreferenceCategory>
</PreferenceScreen>

PreferenceActivity 的类文件:

  1. package com.icitylife.preference;
  2. import android.content.SharedPreferences;
  3. import android.os.Bundle;
  4. import android.preference.Preference;
  5. import android.preference.PreferenceActivity;
  6. import android.preference.PreferenceScreen;
  7. import android.preference.Preference.OnPreferenceChangeListener;
  8. public class Main extends PreferenceActivity implements OnPreferenceChangeListener {
  9. /** Called when the activity is first created. */
  10. @Override
  11. public void onCreate(Bundle savedInstanceState) {
  12. super.onCreate(savedInstanceState);
  13. //设置PreferenceActivity保存数据使用的XML文件的名称
  14. getPreferenceManager().setSharedPreferencesName("mySetting");
  15. //加载XML资源文件:此处就不能使用Activity的setContentView()
  16. addPreferencesFromResource(R.xml.preference_setting);
  17. //获取【姓名】设置项对应的Preference对象
  18. Preference  individualNamePreference=findPreference("my_individual_name");
  19. //获得指向mySetting.xml文件的SharedPreference对象
  20. SharedPreferences sharedPreferences=individualNamePreference.getSharedPreferences();
  21. //设置【姓名】设置项的summary
  22. individualNamePreference.setSummary(sharedPreferences.getString("my_individual_name",""));
  23. //判断【是否保存个人信息】设置项是否被选中
  24. if(sharedPreferences.getBoolean("my_yesno_save_individual_info",false)){
  25. individualNamePreference.setEnabled(true);
  26. }else{
  27. individualNamePreference.setEnabled(false);
  28. }
  29. individualNamePreference.setOnPreferenceChangeListener(this);
  30. //获得【电话号码】设置项对应的Preference对象
  31. Preference mobileNamePreference=findPreference("my_mobile");
  32. SharedPreferences mobileSharedPreferences=mobileNamePreference.getSharedPreferences();
  33. //设置【电话号码】的summary
  34. mobileNamePreference.setSummary(mobileSharedPreferences.getString("my_mobile",""));
  35. mobileNamePreference.setOnPreferenceChangeListener(this);
  36. }
  37. @Override
  38. public boolean onPreferenceChange(Preference preference, Object newValue) {
  39. preference.setSummary(String.valueOf(newValue));
  40. return true;
  41. }
  42. /**
  43. * 处理【是否保存个人信息】的改变事件
  44. */
  45. @Override
  46. public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
  47. Preference preference){
  48. if("my_yesno_save_individual_info".equals(preference.getKey())){
  49. findPreference("my_individual_name").setEnabled(!findPreference("my_individual_name").isEnabled());
  50. }
  51. return super.onPreferenceTreeClick(preferenceScreen, preference);
  52. }
  53. }

Android保存设置的PreferenceActivity的更多相关文章

  1. Android ListView ListActivity PreferenceActivity背景变黑的问题ZT

    Android ListView ListActivity PreferenceActivity背景变黑的问题 ListView在滚动时背景会变暗甚至变黑,这个要从Listview的效果说起,默认的L ...

  2. [置顶] Android框架攻击之Fragment注入

    为了适应越来越大的设备屏幕,Android在3.X后引入了Fragment概念,作用是可以在一个屏幕上同时显示多个Activity,以达到充分利用屏幕的目的.关于Fragment的使用说明,可以阅读& ...

  3. AndroidStudio 3.5格式化xml文件出现自动改变xml元素位置问题

    问题描述格式化xml时,出现自动改变了xml元素位置问题.左侧是原始的,右侧是格式化后的. 坑娘啊,这样界面就完全变了啊. 解决方案在设置里,Appearance& Behavior > ...

  4. Xamarin android PreferenceActivity 实现应用程序首选项设置(一)

    应用程序首选项屏幕 类似系统设置界面. PreferenceActivity 是另一种类型的Activity,通过PreferenceActivity 可以以最少量的工作显示某些Preference列 ...

  5. Android 软件开发之 PreferenceActivity 中的组件

    1.PreferenceActivity 介绍 PreferenceActivity 继承ListActivity 它是以一个列表的形式在展现内容,它最主要的特点是添加Preference可以让控件的 ...

  6. Android学习笔记(十四)方便实用的首选项-PreferenceActivity

    突然发现已经好多天没更新博客了,最近公司项目正在进行一个大跨度的重构,又碰上有新需求,一连好多天都是很晚才到家.其实这篇博文在草稿箱里面也存了很久了,本来想着不发了,不过感觉PreferenceAct ...

  7. Android之PreferenceActivity 详解

    看到很多书中都没有对PreferenceActivity做介绍,而我正好又在项目中用到,所以就把自己的使用的在这总结一下,也方便日后查找. PerferenceActivity是什么,看下面的截图: ...

  8. Android实战技巧之六:PreferenceActivity使用详解

    一.写作前面 当我们做应用的时候,需要用户配置一些信息,而这就是通常所说的应用设置. 对于Android系统来说,系统本身的设置带来的用户体验和习惯已经深入人心,在我们的应用中同样用到类似的设置页, ...

  9. Android的配置界面PreferenceActivity

    我想大家对于android的系统配置界面应该不会陌生吧,即便陌生,那么下面的界面应该似曾相识吧,假若还是不认识,那么也没有关系,我们这一节主要就是介绍并讲解android 中系统配置界面的使用,相信大 ...

随机推荐

  1. Apache httpd.conf的翻译

    本人初学,15年暑假翻译了一些,前几天翻译完,有机器翻译,也有自己翻译的内容,不准确之处请指出. --------------------------------------------------- ...

  2. String的一些细节

    String 常量池问题 (1) 字符串常量的"+"号连接,在编译期字符串常量的值就确定下来, 拿"a" + 1来说,编译器优化后在class中就已经是a1. ...

  3. Log4j与common-logging

    Log4j与common-logging 总网上搜了些Log4j与common-logging的介绍,记录下. 一.Log4j  1.简介 Log4j是Apache的一个开放源代码项目 使用Log4j ...

  4. webserver<2>

    #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/wai ...

  5. 解决iOS应用内购买报错:invalidProductIdentifiers

    当写完IAP业务过程后,点击测试却发现没有返回成功的商品Id,反而返回了无效的商品:response.invalidProductIdentifiers 这种情况下考虑以下因素: 创建的App ID是 ...

  6. hdu 2460

    这是一道双联通分量的题,要用到LCA算法: 听说这个算法有两种实现方式:一个是dfs+线段树或着RMQ;一个是用tarjin: 我用的是tarjin: 题目比较简单,就是每次加了一条边之后剩下的桥的个 ...

  7. vc6静态库的生成和调用

    转自vc6静态库的生成和调用 1.静态库的生成: 在vc6.0++中Ctrl+N选择Projects下的Win32 Static Library,Project name:SumLib,点击OK,下一 ...

  8. 广州麒麟网络工作室 qlgame eninge(anroid) opengles c++ matrix

    在opengles中,采用的是可编程渲染管线,矩阵需要自己实现! 先说一下矩阵的理论: 参考一下资料:http://blog.sina.com.cn/s/blog_6084f588010192ug.h ...

  9. 【POJ 3487】 The Stable Marriage Problem (稳定婚姻问题)

    The Stable Marriage Problem   Description The stable marriage problem consists of matching members o ...

  10. [转贴]C++调用openssl 的AES加密例子

    #include <stdio.h>#include <string.h>#include <sys/types.h>#include <sys/stat.h ...