android为了方便开发,提供了一个特殊的activity类,PreferenceActivity,用来快速的实现一个设置界面,从名字就可以看出是继承自Activity类(实际上是ListActivity),因而生命周期是一样的。

那么常见的设置菜单有两种,一是只有一个header的(左图),另一种是在3.0发布后加入的,多header的设置菜单(右图)。那么要实现多header的设置菜单,需要引用新的类PreferenceFragment,我们今天只讨论实现一个header的(比较常用)。

         

那么如何用PreferenceActivity呢?

首先我们需要一个配置文件,类似于main.xml,就是我们需要一个资源布局文件。


在xml文件夹下创建一个conf.xml文件用于保存我们的布局

目前android只提供了几种可选的组建,包括

PreferenceScreen 表示一个新的设置窗口,也是我们的布局的根标签。

CheckBoxPreference 表示勾选的选项

ListPreference 表示一个选项列表

EditTextPreference 表示一个文本输入框

PreferenceCategory 用于分组

RingtonePreference 用于铃声的设置

这些都继承自Preference,他们都有的特点就是都有一个key,这个的作用和我们常用的id差不多,一会如果我们要引用这个组建就要通过key来找到他。还有一个共有的属性就是title,他就是每一个设置组建所显示的内容,summary属性显示下面的文本。

其中比较特殊的是ListPreference,他需要关联一个数组资源,如上面代码中的@array/user_type

更多的组建,大家可以产看sdk文档,很多还没有提供在xml直接使用。

那么如何将xml和activity关联呢?

我们需要在onCreate方法里面调用

这样程序启动就会自动加载这个视图文件,效果如下

这个时候如果我们修改了配置的选项,会默认的保存在data/data目录下,如果我们想获取这些值,就可以参照上一篇文章中说讲的内容了。我们现在看一下这些数据存在哪里,在终端中打开adb shell ,我们切到data/data目录下,进入到我们的包中,可以看到shared_prefs文件夹,里面就有我们的com.yui_preferences.xml文件,打开就可以看到已经写入的一些数据了。

PreferenceActiviy实现事件监听


preferenceAcitivity提供了连个事件监听器

OnPreferenceChangeListener用来监听某个属性是否发生了变化。它只有一个方法:

public abstract boolean onPreferenceChange (Preference preference, Object newValue)

第一个参数是 发生变化的组件,第二个参数是新的数值

如果返回true的话就将变化写入文件,返回false不发生改变

第二个监听器更为灵活

OnPreferenceClickListener 用来监听某个选项是否被点击,它也只有一个方法

  public abstract boolean onPreferenceClick (Preference preference)  
     返回true表示处理事件

接下来就是要给我们的组建注册监听器:

为了方便演示,我们使用了Toast实时的显示信息,这个非常简单,就不多介绍了,那么在处理事件的时候,我们只需要判断一下是哪个组件需要响应就好了

最后看一下程序运行的结果吧,当我们改变设置的时候就可以监听到了,结合上一篇文章就可以完成一个完整的设置---读写的模块了。

         

<Linker : http://www.cnblogs.com/octobershiner/>

转载于:https://www.cnblogs.com/MMLoveMeMM/articles/3337936.html

Android PreferenceActivity设置菜单使用相关推荐

  1. Android复习05【网络编程---WebView获取文章信息、保存用户名与密码、设置菜单样式、收藏文章列表】

    2020-04-02-星期四[源码可私聊我,QQ:386335886] 写篇文章不容易,点个赞再走吧,求求了~  目   录 网络访问-思维导图 玩Android网站---查看登录Cookie 适配器 ...

  2. android菜单功能,Android“设置”菜单

    本部分介绍了实现和自定义 Android"设置"菜单可以使用的选项. 设置主屏幕 在 Android 7.0 及更高版本中,"设置主屏幕"页面因增添了建议的设置 ...

  3. android自定义设置界面,Android开发之精仿QQ设置界面(自定义PreferenceActivity)

    Android开发之精仿QQ设置界面(自定义PreferenceActivity) 时间:2011-12-05 10:25:06 来源:Android开发者门户 作者: 今天,再给大家分享一下QQ设置 ...

  4. android 自定义menu 背景颜色,Android中设置Menu菜单的文字颜色为白色

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 开发者交流裙: 188168040 Android中设置Menu菜单的文字颜色为白色,一般情况下,Android中Menu菜单的title文字颜色为黑色, ...

  5. android 7双排设置菜单,联想拯救者电竞手机优化横屏UI 设置菜单呈左右双排显示...

    原标题:联想拯救者电竞手机优化横屏UI 设置菜单呈左右双排显示 过去的直板手机都由物理按键来实现操作,按键加上屏幕后手机整体偏长,而进入大屏智能机时代,按键的位置被屏幕取缔,但长方形的屏幕设计依然得到 ...

  6. Android之选项菜单和上下文菜单解析

    选项菜单 创建选项菜单 Activity类的onCreateOptionMenu事件方法用来创建选项菜单,该方法定义如下: @Overridepublic boolean onCreateOption ...

  7. android studio 设置 ndk 路径

    ndk下载路径: https://developer.android.google.cn/ndk/downloads android studio 设置 ndk 路径 在项目的根目录下面,有个配置文件 ...

  8. android的选项菜单,Android界面菜单(2)—选项菜单

    选项菜单 Android 4.0 系统中,Activity在创建时便会调用 onCreateOptionMenu() 函数初始化自身的菜单系统.在Activity的整个生命周期中,选项菜单是一直被重复 ...

  9. android PreferenceActivity详解

    原帖地址:http://gundumw100.iteye.com/blog/904097 为了引入这个概率 首先从需求说起 即:现有某Activity专门用于手机属性设置 那么应该如何做呢? 根据已学 ...

  10. android 按钮 菜单,(期末要考啊)Android的menu(菜单)按钮的使用

    (期末要考啊)Android的menu(菜单)按钮的使用 安卓 Android的菜单按钮 使用xml的方式创建菜单项在res下的menu目录下新建一个main.xml文件,以menu为根节点,添加一个 ...

最新文章

  1. Nginx从基本原理到开发实践
  2. spring boot(八)RabbitMQ使用
  3. _itemmod_day_limit
  4. Python中的__new__(new函数)
  5. 【面向对象】面向对象程序设计测试题2-Java基本语法测试题
  6. linux vim复制粘贴删除,Linux vim删除、复制、粘贴快捷键
  7. WAV文件格式终极解析
  8. 关于返回二维数组排序后序号数组的问题求解
  9. html节点替换代码,html之DOM对象replaceChild()方法(子节点替换)功能简介说明
  10. 马尔可夫链 ▏小白都能看懂的马尔可夫链详解
  11. Adobe PDF 虚拟打印机Acrobat Distiller 9.0 错误的解决
  12. 一文贯穿“如何制定研究生规划、找实习、秋招”
  13. 工业产品常用的长度单位有哪些?
  14. C. Equalize
  15. 北大青鸟所有学习资料下载地址
  16. 51信用卡清退P2P业务,大量资金逾期!投资人或难保本金
  17. 软件测试工程师发展方向,主要有哪些?
  18. Android button背景设置透明色和样式
  19. python延时执行下一步
  20. PowerShell 将对象转换成文本

热门文章

  1. nb模块不能接收公网消息_NB-IoT 对接调测问题汇总,你想知道的都在这儿 | 收藏吧...
  2. 手把手教你VMware14虚拟机安装教程「图文附软件」
  3. weblogic安装
  4. selenium+java自动化测试环境搭建mac
  5. PDF文件有密码怎么解除?
  6. mysql联合查询的几种方式
  7. office2019专业增强版64位和32位安装包收集整理
  8. Java Web 前端页面 模板源码
  9. 前端如何实现整套视频直播技术流程
  10. 于的繁体字有几种写法_写字繁体字有几种写法 , 辈 字 用繁体字有几种写法?...