目录(?)[-]

  1. EditText Preferences
    1. xml文件
    2. 设备的存贮文件
  2. Ringtone Preferences

EditText Preferences

xml文件

在res/xml/中增加edittext.xml文件,如下:

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    android:key="packet_name" 
    android:title="Package Name"> 
    <EditTextPreference android:key="package_name_pref" 
       android:title="Set Package Name" 
        android:summary="Set the Package Name" 
        android:dialogTitle="Package Name:" /> 
</PreferenceScreen>

重要属性还有android:defaultValue="xxx",用于设置缺省值。执行结果如下:

设备的存贮文件

在设备上存贮preference的内容如下:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?> 
<map> 
    … …  
    <string name="package_name_pref">cn.wei.flowingflying</string>  
    …… 
</map>

从存贮的xml文件中看到,存贮值为string,因此在读取preference时采用getString(),如下:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
String option = prefs.getString("package_name_pref", null);  
showInfo("Package name : " + option);

Ringtone Preferences

Ringtone首选项设定,是用来选择铃音的,例如应用可能需要某个背景音乐。说实在Ringtong首选项的使用场景还是比较少的。我们在混合preferences的xml中加入下面代码:

......    
    <PreferenceScreen android:key="ringtone_option"  
      android:title="Ring Tones"  
      android:summary="Set Ring Tones Preferences"> 
        <RingtonePreference android:key="ringtone_pre" 
            android:title="Set RingTone Preferences" 
            android:summary="Set RingTone" 
            android:showSilent="true" 
            android:ringtoneType="ringtone"/> 
    </PreferenceScreen> 
......

我们在一台真实手机上加载,运行如下:

但是在真实设备上运行是不能够读取存储文件的,所以还是要用模拟器,我们选择了Default Ringtone,相关的存贮信息如下:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?> 
<map> 
    ... ... 
    <string name="ringtone_pre">content://settings/system/ringtone</string>
    ... ... 
</map>

本博文涉及的例子代码,可以在Pro Android学习:Preference(首选项)小例子中下载。

相关链接: 我的Android开发相关文章

【转】 Pro Android学习笔记(五九):Preferences(3):EditText和Ringtone Preference的更多相关文章

  1. 【转】Pro Android学习笔记(九八):BroadcastReceiver(2):接收器触发通知

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.sina.com.cn/flowingflying或作者@恺风Wei-傻瓜与非傻瓜 广播接 ...

  2. 【转】 Pro Android学习笔记(九四):AsyncTask(3):ProgressDialog

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ Progress Dialog小例子 我们 ...

  3. 【转】 Pro Android学习笔记(九二):AsyncTask(1):AsyncTask类

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在Handler的学习系列中,学习了如何h ...

  4. 【转】 Pro Android学习笔记(九三):AsyncTask(2):小例子

    目录(?)[-] 继承AsyncTask UI操作接口 使用AsyncTask 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn. ...

  5. 【转】Pro Android学习笔记(九):了解Content Provider(下下)

    Content provider作为信息的读出,比较常见的还有文件的读写,最基础的就是二进制文件的的读写,例如img文件,音频文件的读写.在数据库中存放了该文件的路径,我们可以通过ContentPro ...

  6. 【转】 Pro Android学习笔记(九一):了解Handler(5):组件生命

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 对于activity,消息是在OnCrea ...

  7. 【转】Pro Android学习笔记(二五):用户界面和控制(13):LinearLayout和TableLayout

    目录(?)[-] 布局Layout 线性布局LinearLayout 表格布局TableLayout 布局Layout Layout是容器,用于对所包含的view进行布局.layout是view的子类 ...

  8. 【转】 Pro Android学习笔记(五六):配置变化

    目录(?)[-] Activity的destorycreate过程 Fragment的destorycreate过程 onSaveInstanceState saveFragmentInstanceS ...

  9. 【转】 Pro Android学习笔记(五二):ActionBar(5):list模式

    可以在action bar中加入spinner的下来菜单,有关spinner,可以参考Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner. list的样式和 ...

  10. 【转】 Pro Android学习笔记(二九):用户界面和控制(17):include和merge

    目录(?)[-] xml控件代码重用include xml控件代码重用merge 横屏和竖屏landsacpe portrait xml控件代码重用:include 如果我们定义一个控件,需要在不同的 ...

随机推荐

  1. IntelliJ IDEA 添加类注释模板

    效果展示 /** * Created with IntelliJ IDEA * USER:jacun * CLASSNAME: HalloWorldController * DATE: 2019/1/ ...

  2. Springmvc注解启用

      http://www.blogbus.com/wanping-logs/235898637.html 使用注解的原因 最方便的还是启用注解 注解方便,而且项目中很流行. 配置文件尽量减少,主要使用 ...

  3. IOS蓝牙开发模块

    一.引言 蓝牙是设备近距离通信的一种方便手段,在iPhone引入蓝牙4.0后,设备之间的通讯变得更加简单.相关的蓝牙操作由专门的 CoreBluetooth.framework进行统一管理.通过蓝牙进 ...

  4. python 3 并发编程之多进程 multiprocessing模块

    一 .multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程. ...

  5. P3214 [HNOI2011]卡农

    题目 P3214 [HNOI2011]卡农 在被一题容斥\(dp\)完虐之后,打算做一做集合容斥这类的题了 第一次深感HNOI的毒瘤(题做得太少了!!) 做法 求\([1,n]\)组成的集合中选\(m ...

  6. django配置文件环境分离后celery的启动方式整理

    django项目中,当配置文件分离时: 启动方式1: 硬编码写死在manage.py中: os.environ.setdefault("DJANGO_SETTINGS_MODULE" ...

  7. 算法(Algorithms)第4版 练习 2.3.17

    关键代码: public static void sort(Comparable[] a) { StdRandom.shuffle(a);//eliminate dependence on input ...

  8. win7系统查看端口占用情况

    我们在启动应用或者在开发的时候的时候经常发现我们需要使用的端口被别的程序占用,但是我们又不知道是被谁占用,这时候我们需要找出“真凶”,如何做到呢? 方法/步骤   开始---->运行----&g ...

  9. Oracle使用hs odbc连接mssql2008

    1.创建odbc 2.在 product\11.2.0\dbhome_1\hs\admin\  下拷贝initdg4odbc,把名字改为initcrmsql(init+所建odbc的名称) HS_FD ...

  10. 循环递归+返回值(TreeView示例)

    示例:获取TreeView的所有Node,保存到List<TreeNode>,封装到通用工具类: 方法一:使用static方法.属性---调用前清空static类型的List public ...