1  、Preference是androidSDK提供的一个基类从API1就开始有了,用于显示界面给用户。

2  、在使用Preference显示activity时,此activity需要继承Preferenceactivity,  在oncreate方法里面实现addPreferencesFromResource(R.xml.main)加载布局文件  ,次布局文件需要在res文件夹下 新建一个xml文件夹 。在新建一个xml文件。
3 、布局文件有三种标签
PreferenceScreen  根节点
PreferenceCategory  分类结点
Preference  子节点

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

    <PreferenceCategory android:title="@string/general" >
        <Preference android:title="@string/properties" />
        <Preference android:title="@string/attach" />
        <Preference android:title="@string/left_and_right" />
        <Preference android:title="@string/changing_fragments" />
        <Preference android:title="@string/responsive_ui" />
        <Preference android:title="@string/viewpager" />
    </PreferenceCategory>
    <PreferenceCategory android:title="@string/title_bar" >
        <Preference android:title="@string/title_bar_slide" />
        <Preference android:title="@string/title_bar_content" />
    </PreferenceCategory>
    <PreferenceCategory android:title="@string/animations" >
        <Preference android:title="@string/anim_zoom" />
        <Preference android:title="@string/anim_scale" />
        <Preference android:title="@string/anim_slide" />
    </PreferenceCategory>

</PreferenceScreen>

4 、重写 onPreferenceTreeClick方法实现监听

    @Override
    public boolean onPreferenceTreeClick(PreferenceScreen screen, Preference pref) {
        Class<?> cls = null;
        String title = pref.getTitle().toString();
        if (title.equals(getString(R.string.properties))) {
            cls = PropertiesActivity.class;
        } else if (title.equals(getString(R.string.attach))) {
            cls = AttachExample.class;
        } else if (title.equals(getString(R.string.changing_fragments))) {
            cls = FragmentChangeActivity.class;
        } else if (title.equals(getString(R.string.left_and_right))) {
            cls = LeftAndRightActivity.class;
        } else if (title.equals(getString(R.string.responsive_ui))) {
            cls = ResponsiveUIActivity.class;
        } else if (title.equals(getString(R.string.viewpager))) {
            cls = ViewPagerActivity.class;
        } else if (title.equals(getString(R.string.title_bar_slide))) {
            cls = SlidingTitleBar.class;
        } else if (title.equals(getString(R.string.title_bar_content))) {
            cls = SlidingContent.class;
        } else if (title.equals(getString(R.string.anim_zoom))) {
            cls = CustomZoomAnimation.class;
        } else if (title.equals(getString(R.string.anim_scale))) {
            cls = CustomScaleAnimation.class;
        } else if (title.equals(getString(R.string.anim_slide))) {
            cls = CustomSlideAnimation.class;
        }
        Intent intent = new Intent(this, cls);
        startActivity(intent);
        return true;
    }
 

android开发Preference的使用的更多相关文章

  1. Android 开发一定要看的15个实战项目

    前言: 虽说网上有太多的Android课程,但是大多都是视频,有Android在线开发环境的几乎没有,但是对于学习Android的人来说拥有在线的Android开发环境是非常好的,可以随时动手操作学习 ...

  2. Android开发用过的十大框架

    http://blog.csdn.net/u011200604/article/details/51695096 本文系多方综合与转载整合,意在Android开发中能够知道和使用一些好用的第三方支持, ...

  3. Android开发常用工具类

    来源于http://www.open-open.com/lib/view/open1416535785398.html 主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前 ...

  4. 【Bugly 技术干货】Android开发必备知识:为什么说Kotlin值得一试

    1.Hello, Kotlin Bugly 技术干货系列内容主要涉及移动开发方向,是由 Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 1. ...

  5. 新人学习Android开发遇到的小问题总结

    1. IDE搭建: 搭建android的IDE时,先注意是什么版本的系统,64/32位系统. 通常使用的是Eclipse for android,Android Studio由于还需要FQ,网速慢,所 ...

  6. android开发中经常遇到的问题汇总

    大家都在为项目开发成功而喜悦,但可不知成功的路上是会经常出错的,下面是我碰到的一些错误集合! [错误信息] [2011-01-19 16:39:10 - ApiDemos] WARNING: Appl ...

  7. 黑客破译android开发代码真就那么简单?

    很多程序员辛辛苦苦开发出的android开发代码,很容易就被黑客翻译了. Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了 ...

  8. Android开发第1篇 - Android开发环境搭建

    归结一下,需要进行Android开发所需要的工具或软件: Eclipse - Android是基于JAVA的开发,所以选用目前来说使用较高的Eclipse作为IDE. ADT (Android Dev ...

  9. 我的Android开发相关文章

    Pro Android学习笔记: Pro Android学习笔记(一零七):2D动画(2):layout渐变动画 2014.7.25 Pro Android学习笔记(一零六):2D动画(1):fram ...

随机推荐

  1. 跟我一起数据挖掘(22)——spark入门

    Spark简介 Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行,Spark,拥有Hadoop MapReduce所具有的优点:但不同于MapR ...

  2. WCF:传输EntityFramework 实体类的POCO 代理

    WCF传输EntityFramework 实体类的POCO 代理 Windows Communication Foundation (WCF) 不能对代理进行直接序列化或反序列化,因为 DataCon ...

  3. 《Entity Framework 6 Recipes》中文翻译系列 (10) -----第二章 实体数据建模基础之两实体间Is-a和Has-a关系建模、嵌入值映射

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 2-11 两实体间Is-a和Has-a关系建模 问题 你有两张有Is-a和Has-a ...

  4. JavaScript学习笔记之Object

    对象(object)是JavaScript的核心概念,也是最重要的数据类型.JavaScript的所有数据都可以被视为对象. 简单说,所谓对象,就是一种无序的数据集合,由若干个“键值对”(key-va ...

  5. IL指令汇总

    名称 说明   名称 说明 Add 将两个值相加并将结果推送到计算堆栈上.   Ldelem.I1 将位于指定数组索引处的 int8 类型的元素作为 int32 加载到计算堆栈的顶部. Add.Ovf ...

  6. 异步方法不能使用ref和out的解决方法

    异常处理汇总-后端系列:http://www.cnblogs.com/dunitian/p/4523006.html 应用场景==>后端现在都是用异步方法,那么分页是必不可少的,于是就有了这个问 ...

  7. 如何变相的绕过QQ邮箱订阅的繁琐核审

    先看看正常流程:http://open.mail.qq.com/ 点击“接入订阅”==>申请接入==>登录一下 选择接入完全免费 大概流程就是这样: 下面我们说说快速接入的方法: 1.登录 ...

  8. 解决HubbleDotNet搜索引擎索引数据不全的问题

    HubbleDotnet是国产.NET平台搜索引擎的翘楚,开放源代码,使用方便,不过我一直在非生产环境下使用.官方网页在HubbleDotNet开源全文搜索数据库项目--技术详解. 以前当数据库使用M ...

  9. EasyUI Tabs绑定右键

    JS:             /*为选项卡绑定右键*/                 $("#tabs").tabs({                     onConte ...

  10. make things simple

    以前看过一篇文章,具体内容不记得了,只记得它的结论了:懒是人类进步的源动力.当时觉得结论有点新颖,文中列举了大量的实例证明这个结论,其中重点强调了计算机学科.我本身从事算是计算机相关的工作,对文中的部 ...