前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何自定义“设置界面”

如何自定义“设置界面”

作者头像
猴哥yuri
发布2018-08-16 15:36:40
1.3K0
发布2018-08-16 15:36:40
举报
文章被收录于专栏:极客猴
近来我因为工作上比较忙,自己也有点私事,所以导致三个星期托更了,实在抱歉。咱们就不搞花里胡哨的东西,直接开门见山。

我最近接到一个新需求,为 App 新增一个设置页面。该页面布局算是比较复杂,自己实现起来既略显繁琐又浪费时间。于是,自己设想是否有系统 API 来快速实现该功能。最后我在 Google Android 官网文档发现 PreferenceActivity 这神奇的类。

1

介绍

PreferenceActivity 简单理解为是一个自带 SharedPreferences 的 Activity,用于做设置界面的类。

由于系统版本不同的原因,我们需要做好兼容性工作。

1)如果系统版本低于 Android 3.0 (API 级别 10),需要使用 PreferenceActivity。

2)如果系统版本高于 Android 3.0 ,建议使用 Activity 和 PreferenceFragment 来搭配显示界面。

2

Preference 分类

3

扩展 ActivityPreference 类

一般的 Activity 通过调用 setContentView 来加载布局视图,而 PreferenceActivity 则例外。

它使用 addPreferencesFromResource() 以将在 XML 文件中声明的首选项添加到 Activity。

4

使用 PreferenceFragment

同样在 rex/xml 中新建 XML 文件

SettingsActivity 集成普通的 Activity 即可,其主要工作就是加载启动事务来加载 Fragment。

那么 SettingsFragment 就需要通过加载 XML 文件来显示视图。

5

自定义 Preference 布局

通过 Preference 的属性 android:layout = "@layout/preference_layout" 设置自定义的layout文件

6

支持标题栏

细心的你也许会发现怎么设置标题栏呢?难道要在 Activity 布局文件中设置?有没有更加简便的办法呢?答案是肯定的。

SettingActivity 需要集成 PreferenceActivity。然后在 SettingActivity 中利用 AppCompatDelegate (代理)来操作。

7

监听变化

当你在界面改变选项的时候,系统会自动保存你的修改的。但是你需要处理选项被修改之后的逻辑,你需要设置一个 OnSharedPreferenceChangeListener 来监听变化。

作者:猴哥,公众号:极客猴。爱好读书,喜欢钻研技术,梦想成为文艺青年的IT Boy。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 极客猴 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档