• Settings app简单学习记录


    Settings是android系统设置的入口。主界面由Settings.java以及settings_headers.xml构成。 

    Settings类继承自PreferenceActivity,而PreferenceActivity又继承自ListActivity,ListActivity拥有ListView和ListAdapter类型的成员变量。

    1,如何使用PreferenceActivity构建页面

    使用addPreferencesFromIntent或者addPreferencesFromResource将定义了headers的内容(如果是从resource中加载,那么一般是放在xml文件夹下的文件)加载进PreferenceActivity。每一个定义的header就是ListView中的一行View,当然,显示出来的样式会不同,比如分类标题“无线和网络”和下面的“WLAN”其实都是一个header。

    类似于ListView的使用,我们在ListAdapter的getView方法中,可以使用额外的布局文件,对每一行进行UI定制。比如wlan和bt有开关,那么就用layout下的perference_header_switch_item.xml来构建view。

    在构造各种页面组件时用了系统内部属性,如holder.title = (TextView)view.findViewById(com.android.internal.R.id.title);

    每一个header对应一个fragment,在settings_headers.xml中使用标签指定,如android:fragment="com.android.settings.wifi.WifiSettings"

    2,开关(switch)的处理

    以WLAN开关举例,在Settings中会构建WifiEnabler的实例,将实例化的switch传给WifiEnabler,后续的开关状态维护,点击事件监听全都交给WifiEnabler来处理了。

    3,设置值的存储

    在Settings的OnCreate函数中,就出现了getSharedPreferences,所以设置的值将存储于“/data/data/com.android.settings/shared_prefs”下的com.android.settings_preferences.xml里。

  • 相关阅读:
    IOS 消息分发
    使用do{ } while(0)的好处
    BdAsyncTask学习
    用户体验学习笔记(工程中发现的PM常犯错误)
    Xcode 7 调试野指针利器 Address sanitizer
    Xcode磁盘空间大清理
    xcode:关于Other Linker Flags
    mac 下打开多个Eclipse
    shape 代码生成器
    查看APK方法数的工具dex-method-counts
  • 原文地址:https://www.cnblogs.com/wolflzc/p/3759575.html
Copyright © 2020-2023  润新知