博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android中Preference的使用以及监听事件分析
阅读量:6971 次
发布时间:2019-06-27

本文共 1698 字,大约阅读时间需要 5 分钟。

hot3.png

  在Android系统源码中,绝大多数应用程序的UI布局采用了Preference的布局结构,而不是我们平时在模拟器中构建应用程序时使用的View布局结构,例如,Setting模块中布局。当然,凡事都有例外,FMRadio应用程序中则使用了View布局结构(可能是该应用程序是marvel公司提供的,如果由google公司做,那可说不准)。归根到底,Preference布局结构和View的布局结构本质上还是大同小异,Preference的优点在于布局界面的可控性和高效率以及可存储值的简洁性(每个PreferenPreferencece存储在相对应下的SharedPreference文件夹下)。 下面,我们对比Preference和View下得各个子控件,对他们的家庭元素在宏观上有个更好的把握性。

     单一控件:

                        Preference 控件家庭          View控件家庭       控件含义

                          Preference                  TextView           文本框

                          CheckPreference             CheckBox           单选框

                          EditTextPreference          EditText          输入文本框 

                          ListPreference              ListView          列表框

                          RingtonePreference          ——               铃声

          其实在Android源码系统中还有很多的”未完工”的Preference, 没有为它们提供PI接口,例如SeekBarPreference,

       有兴趣的同学可以参考源码,具体路径为:frameworks/base/core/java/preference。

组合控件:

              PreferenceCategory :类似于LinearLayou、RelativeLayout,用于组合一组Preference,使布局更具备层次感 。

              PreferenceScreen  : 所有Preference元素的根节点。

  

   显示Preference布局结构的方法为:

           使我们的Activity继承PreferenceActivity,然后在onCreate()方法中通过   

      addPreferencesFromResource(R.xml.custom_preference) (我们自定义的Preference 布局)。

      怎么样,是不是似曾相识?稍后会用一个Demo来为您详述。

  

   Preference元素的通用XML Attributes说明:    

        android:key :          每个Preference控件独一无二的”ID”,唯一表示此Preference。          

         android:defaultValue : 默认值。 例如,CheckPreference的默认值可为”true”,默认为选中状态;

                                             EditTextPreference的默认值可为”110” 。

         android:enabled :      表示该Preference是否可用状态。     

         android:title :        每个Preference在PreferenceScreen布局上显示的标题——大标题

         android:summary :      每个Preference在PreferenceScreen布局上显示的标题——小标题(可以没有)

         android:persistent:    表示Preference元素所对应的值是否写入sharedPreferen文件中,如果是true,则表示写

                                       入;否则,则表示不写入该Preference元素的值。

         android:dependency:    表示一个Preference(用A表示)的可用状态依赖另外一个Preference(用B表示)。B可用,

                                              则A可用;B不可用,则A不可用。

         android:disableDependentsState:  与android:dependency相反。B可用,则A不可用;B不可用,则A可用。

  

   常用的方法则包括:

                getKey()            setKey()

             getSummary()        setSummary()

             getText()           setText()

转载于:https://my.oschina.net/chuiyuan/blog/292676

你可能感兴趣的文章
MessageBeep()---穷人的调试器
查看>>
scala学习手记9 - =和==
查看>>
android:descendantFocusability用法简析
查看>>
Linq中的分页
查看>>
WAP端 经验记录2
查看>>
HTTP/2基础
查看>>
iOS实践01
查看>>
Removing bad blocks from the USB drive with fsck
查看>>
javascript事件之:jQuery事件中实例对象和拓展对象之间的通信
查看>>
用服务提高附加值:无人机服务公司如何打造定制一站式服务?
查看>>
sharepoint 获取术语集源的术语并绑定到下拉列表中
查看>>
[HDU1756]Cupid's Arrow
查看>>
数学分析原理 定理 6.5
查看>>
linearlayout点击变换颜色
查看>>
helm-locate 使用 everything
查看>>
C#for(;;)是什么意思?
查看>>
HTML的footer置于页面最底部的方法
查看>>
dedecms---一个简单酷站的构建及解析
查看>>
网上商城系统主要模块
查看>>
牧羊少年奇幻之旅读书笔记
查看>>