2024年3月21日发(作者:)

关于Android Settings中的八个问题

长沙Android培训:关于Android Settings中的八个问题,本文将回答以下八个问

题,如有错误,敬请批评指正,不胜感激!(注:本文中的Settings解析基于android4.0+)

问题一、Settings的主界面是怎么实现的?

问题二、为什么使用hierarchyviewer 时Settings中的很多界面显示的都是

SubSettings?

问题三、hierarchyviewer 中显示SubSetting时如何确定我进入的是哪个

fragment?

问题四、点击设置界面的某一个header时,设置界面是如何切换的?

问题五、中getMetaData与getStartingFragmentClass这两个函

数是否有点矛盾?

问题六、Settings的shortcut是如何创建的?从shortcut进入Settings的流程是

什么?

问题七、为什么我从Settings的shortcut进入时,hierarchyviewer显示的就不是

SubSettings(如Data usage)?

问题八、中很多继承自它的内部类都是空实现,为什么要写这些类?

-------------------------------------------------------------------------------------

----------------------------------------------------

由于项目需要,本人就对Android中的Settings进行了解析,希望能帮到对Settings

有兴趣的同志们~

-------------------------------------------------------------------------------------

----------------------------------------------------

问题一、Settings的主界面是怎么实现的?

为了能适应平板和手机,Settings

PreferenceFragment结合的实现方式。

采用了PreferenceActivity和

继承自PreferenceActivity,是Settings的主界面,它通过

loadHeadersFromResource函数(api level 11)加载res/xml/settings_来构

造界面。在settings_中声明了要在Settings主界面显示的各个header(如

Sound、Display等)。Adapter将其中的header分为三类。在

Adapter中的getView方法中根据header的类型使用不同的布局文件。

为header划分类型的函数

static int getHeaderType(Header header) {

if (nt == null && == null) {