AndroidFragement学习笔记(三)----PreferenceFragment的使用.pdf

上传人:tbuqq 文档编号:5012087 上传时间:2020-01-28 格式:PDF 页数:5 大小:157.46KB
返回 下载 相关 举报
AndroidFragement学习笔记(三)----PreferenceFragment的使用.pdf_第1页
第1页 / 共5页
AndroidFragement学习笔记(三)----PreferenceFragment的使用.pdf_第2页
第2页 / 共5页
AndroidFragement学习笔记(三)----PreferenceFragment的使用.pdf_第3页
第3页 / 共5页
AndroidFragement学习笔记(三)----PreferenceFragment的使用.pdf_第4页
第4页 / 共5页
AndroidFragement学习笔记(三)----PreferenceFragment的使用.pdf_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《AndroidFragement学习笔记(三)----PreferenceFragment的使用.pdf》由会员分享,可在线阅读,更多相关《AndroidFragement学习笔记(三)----PreferenceFragment的使用.pdf(5页珍藏版)》请在三一文库上搜索。

1、相信大家对 Perference 都比较熟悉了,也就是我们常说的偏好设置,首选项设置,可以 保存一些数据,例如我们在上一次使用的时候的一些内容,希望在下一次启动后依然生 效,而不需要再进行配置那么麻烦。一般这个时候我们便会使用perference 键值对的方式 来处理,在 android3.0 之前,我们一般去继承Preference 这个基类去给用户呈现一个可以设 置的界面,其中的layout 需要自己编写,今天我们研究的是3.0之后使用碎片技术的首选项 配置方法,即使用PreferenceFragement来实现。 - - public abstract class PreferenceF

2、ragment extends Fragment 以一个列表来展示首选项对象的层级关系,这些首选项将自动地保存为 SharedPreferences,使用户可以用他们来进行交互。为了能够重新获得 ShaedPreferences的实例,该 Fragement 中的层级首选项将会在同一个包下面使用带有一 个上下文的 PreferenceManager.getDefaultSharedPreferences作为这个 fragement 。 此外,所展示的首选项将会遵循系统首选项的视觉风格,通过使用XML 文件来创建各个首 选项的视图层级(可以被显示在许多页面)会非常简单。基于上述原因,推荐在应用中

3、使用这 个fragement( 作为一个超类 )来处理首选项问题。 一个 PreferenceScreen对象应该在首选项层级的顶部。此外,随后在层次结构 PreferenceScreen表示一个屏幕分割处 就是包含随后的PreferenceScreen应显示在另 一个屏幕页面上。首选项框架处理从首选项层次结构显示了这些其他屏幕内容。 首选项层次结构可以有很多种方式形成: 从一个 XML文件制定的层次结构。 从不同的 activity ,每一个 activity 通过 meta-data 在一个 XML 文件中制定他自己的首选项。 从一个以 PreferenceScreen为根的层次结构对象。

4、 为了从一个 XML 文件中获取界面,使用addPreferenceFromResource(int)方法。根元素应 该使用 PreferenceScreen。随后的元素可以指向实际的首选项的子类。正如上面提到的, 在层次结构中随后的PreferenceScreen将导致屏幕分割处。 为了指定一个意图来查询都带有各自首选项的activitiy ,使用 addPreferenceFromIntent方 法。每个 activity 可以在 manifest 文件中指定 meta-data 来指向一个 XML文件资源。这些资源 文件将被填充到单独的首选项层次结构并且通过这个fragment 来展示。

5、 为了指定一个以PreferenceScreen为根元素的对象,使用 setPreferenceScreen(PreferenceScreen)方法。 方便起见,这个fragment 实现了一个用于当前层次结构中任意首选项的点击事件监听器, onPreferenceTreeClick(PreferenceScreen,Preference). 以上翻译自 PreferenceFragment的官方文档,可自行查阅其原版说明 - - 根据官方文档的说明以及自带的APIdemo 中的例子,我自己使用PreferenceFragment写了一个例子,效果与之前使 用继承 PreferenceActi

6、vity差不多,步骤如下: 创建一个工程 在 MainAcitivity 中添加菜单按钮及对应效果 java 01.package com . exampl e. f r agem ent exam ; 02. 03.i m por tandr oi d. os. Bundl e; 04.i m por tandr oi d. vi ew. Menu; 05.i m por tandr oi d. vi ew. MenuI t em; 06.i m por tandr oi d. app. Act i vi t y; 07.i m por tandr oi d. cont ent . I nt

7、 ent ; 08. 09.publ i c cl assM ai nAct i vi t yext ends Act i vi t y 10. 11.pr i vat e st at i c f i nali ntm enu_set t i ng = 1; 12. 13. O ver r i de 14.pr ot ect ed voi d onCr eat e( Bundl e savedI nst anceSt at e) 15.super . onCr eat e( savedI nst anceSt at e) ; 16.set Cont ent Vi ew( R. l ayout

8、. m ai n) ; 17. 18. 19. O ver r i de 20.publ i c bool ean onCr eat eOpt i onsMenu( Menu m enu) 21./ /TODO Aut o- gener at ed met hod st ub 22.menu. add( 0, m enu_set t i ng, 1, “ 设置“ ) . set I con( andr oi d. R. dr awabl e. i c_menu_pr ef er ences) ; 23.r et ur n super . onCr eat eOpt i onsM enu( me

9、nu) ; 24. 25. 26. O ver r i de 27.publ i c bool ean onO pt i onsI t emSel ect ed( MenuI t em i t em ) 28./ /TODO Aut o- gener at ed met hod st ub 29.super . onOpt i onsI t em Sel ect ed( i t em) ; 30.I nt enti nt ent= new I nt ent ( t hi s,Fr agment Pr ef er ences. cl ass) ; 31.st ar t Act i vi t y(

10、 i nt ent ) ; 32.r et ur n f al se; 33. 34. 35. 在 res文件夹下面新建一个xml文件夹,在里面新建一个preferences.xml 文件 html 01. 02. 03. 04. 08. 09. 10. 15. 16. 23. 24. 25. 26. 30. 31. 35. 36. 39. 42. 43. 44. 45. 49. 50. 56. 57. 58. FragmentPreferences.java的代码部分 java 01.package com . exampl e. f r agem ent exam ; 02. 03.i m

11、 por tandr oi d. app. Act i vi t y; 04.i m por tandr oi d. os. Bundl e; 05.i m por tandr oi d. pr ef er ence. Pr ef er enceFr agm ent ; 06. 07.publ i c cl assFr agm ent Pr ef er encesext ends Act i vi t y 08. O ver r i de 09.pr ot ect ed voi d onCr eat e( Bundl e savedI nst anceSt at e) 10./ /TODO A

12、ut o- gener at ed met hod st ub 11.super . onCr eat e( savedI nst anceSt at e) ; 12.get Fr agment M anager ( ) . begi nTr ansact i on( ) . r epl ace( andr oi d. R. i d. cont ent ,new Pr ef sFr agem ent ( ) ) . c 13. 14. 15. 16.publ i c st at i c cl assPr ef sFr agementext endsPr ef er enceFr agment

13、17. Over r i de 18.publ i c voi d onCr eat e( Bundl e savedI nst anceSt at e) 19./ /TODO Aut o- gener at ed m et hod st ub 20.super . onCr eat e( savedI nst anceSt at e) ; 21.addPr ef er encesFr om Resour ce( R. xm l . pr ef er ences) ; 22. 23. 24. 最后是运行之后的效果截图: 大致对 PreferenceFragment的学习使用就是这样啦,以后在高版本上面开发的时候可以考虑这种方式。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1