AndroidManifest.xml中
com.android.settings.Settings这个类
<category android:name="android.intent.category.LAUNCHER" /> 所在launcher的界面可以直接启动Settings。
Settings的基本关系:public class Settings extends PreferenceActivity implements ButtonBarHandler
可以看出Settings即为PreferenceActivity。
PreferenceActivity的各个Item如何添加(以Settings为例):
PreferenceActivity ----setListAdapter----->HeaderAdapter(mHeaders)----->HeaderViewHolder(ImageView icon;TextView title;TextView summary;)
基本实现就是通过HeaderAdapter将mHeaders适配到ListView当中。而在适配每一个Header的时候,会取出header的icon以及title,summary等并放入HeaderViewHolder中,
然后通过view.setTag(holder);将holer设给view,最后返回每一个view为一个item。
所以在Settings中的每一个item都是一个header, 而你这些header是在settings_headers.xml文件中配置的。通过loadHeadersFromResource(R.xml.settings_headers, headers);将其加载进来。loadHeadersFromResource这个函数就是一个xml的文件的解析函数,得到header并将其放入headers中。
接下来就是对各个item的监听:
继续在PreferenceActivity中:

本文分析了Android的Settings界面,指出Settings继承自PreferenceActivity,并实现了ButtonBarHandler接口。通过AndroidManifest.xml中LAUNCHER分类,Settings能直接启动。每个Settings item由HeaderAdapter将settings_headers.xml中的配置适配到ListView,点击item时,通过onHeaderClick处理,如启动fragment跳转到蓝牙设置等界面。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



