当前位置: 首页 > news >正文

android开发之PreferenceScreen使用详解

是在惭愧,学习android也有一段时间了,今天才是第一次接触PreferenceScreen。记录下来,与大家分享。

本文参考:http://lovezhou.iteye.com/blog/1020361

PreferenceScreen使用步骤:


1.先在res文件夹中新建一个xml文件夹,用来存放preferences.xml文件
preferences.xml

<?xml version="1.0" encoding="utf-8"?>  
<PreferenceScreen  xmlns:android="http://schemas.android.com/apk/res/android">  <PreferenceCategory  android:title="显示一排偏好">  <CheckBoxPreference  android:key="checkbox_preference"  android:title="开关偏好"  android:summary="这是一个开关按钮" />  </PreferenceCategory>  <PreferenceCategory  android:title="基于对话框的偏好">  <EditTextPreference  android:key="edittext_preference"  android:title="文本输入偏好"  android:summary="使用一个文本框对话框"  android:dialogTitle="输入你的宠物" />  <ListPreference  android:key="list_preference"  android:title="列表偏好"android:summary="使用一个列表对话框"  android:entries="@array/entries_list_preference"  android:entryValues="@array/entryvalues_list_preference"  android:dialogTitle="选择一个" />  </PreferenceCategory>  <PreferenceCategory  android:title="启动偏好">  <PreferenceScreen  android:key="screen_preference"  android:title="屏幕"  android:summary="显示另一个偏好屏幕">  <!-- You can place more preferences here that will be shown on the next screen. -->  <CheckBoxPreference  android:key="next_screen_checkbox_preference"  android:title="开关偏好"  android:summary="另一个屏幕上的偏好" />  </PreferenceScreen>  <PreferenceScreen  android:title="意图偏好"  android:summary="通过意图启动一个Activity">  <intent android:action="android.intent.action.VIEW"  android:data="http://www.baidu.com" />  </PreferenceScreen>  </PreferenceCategory>  <PreferenceCategory  android:title="偏好属性">  <CheckBoxPreference  android:key="parent_checkbox_preference"  android:title="父开关"  android:summary="这是一个父开关" />  <CheckBoxPreference  android:key="child_checkbox_preference"  android:dependency="parent_checkbox_preference"  android:layout="?android:attr/preferenceLayoutChild"  android:title="子开关"  android:summary="这是一个子开关" />  </PreferenceCategory>  
</PreferenceScreen>

2.新建一个Activity继承PreferenceActivity
3.重写onCreate方法,添加preferences.xml作为显示界面:

    @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
//      setContentView(R.layout.activity_setting);addPreferencesFromResource(R.xml.preferences);}

好了,这些都搞完了,那么我们怎么能够随时拿到这些首选项数据呢?

            SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);boolean ON_OFF = sp.getBoolean("checkbox_preference", false);boolean next_screen = sp.getBoolean("next_screen_checkbox_preference", false);String text = sp.getString("edittext_preference", "");String listtext = sp.getString("list_preference", "");Log.i("lenve", ON_OFF+"--"+next_screen+"--"+text+"--"+listtext);

可是有的时候我们如果希望更改后立马被系统获知选项已被更改,又该如何?复写继承了PreferenceActivity的类中的onPreferenceTreeClick方法,这个方法会在设置修改时触发。

    @Overridepublic boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,Preference preference) {SharedPreferences sp = preference.getSharedPreferences();boolean ON_OFF = sp.getBoolean("checkbox_preference", false);Log.i("lenve", ON_OFF+"");String text = sp.getString("edittext_preference", "");Log.i("lenve", text+"");String listtext = sp.getString("list_preference", "");Log.i("lenve", listtext+"");boolean next_screen = sp.getBoolean("next_screen_checkbox_preference", false);Log.i("lenve", next_screen+"");return true;}

本项目完整代码下载http://pan.baidu.com/s/1sj5fxEX

http://www.xdnf.cn/news/810307.html

相关文章:

  • 入门级 如何编写第一个网页
  • 理解一般指针和指向指针的指针
  • 黑客的入侵方式你知道几种?
  • cookie是什么?有什么用?cookie详解,一篇文章彻底搞懂cookie
  • Smtp/POP3邮箱服务器地址和端口总结(163/126/QQ)
  • ioctl用法详解
  • html alt 作用,什么是alt标签的作用,alt标签对SEO有哪些影响呢?
  • Jeninkins离线部署
  • 2024年运维最全我把废旧 Android 手机改造成了 Linux 服务器(1),2024年最新Linux运维面试宝典2024
  • 【软考高级-系统分析师】考试大纲
  • 微软一个罕为人知的无敌命令ntsd
  • 快速引用参考文献——EndNote入门指南
  • win10连接共享打印机错误709怎么解决
  • 启动mysql报错10038_解决navicat远程连接mysql报错10038的问题
  • Flowplayer-一款免费的WEB视频播放器
  • 巧用text-shadow为文字添加阴影效果
  • 图像术语知识
  • window.prompt()方法详解
  • SCN 详解
  • 下载网页图片方法大全
  • H3C S5500交换机现在需要分三网段
  • 无线传感器网络及应用
  • 算法导论第三版 第4章习题答案
  • 【数据结构与算法】Knuth-Morris-Pratt 算法(KMP算法):一种在字符串中查找子串的算法
  • 位图格式详解
  • sockaddr和sockaddr_in详解
  • 全国最搞笑的名字都在这了,看了不准笑!
  • matlab中imfilter函数的使用
  • 什么是第三方支付通道接口?
  • 《Linux驱动:USB设备驱动看这一篇就够了》