Contacts应用入口类有2个:PeopleActivity.java和DialtactsActivity.java。PeopleActivity是联系人入口类,DialtactsActivity是拨号入口类,Contacts集成了联系人和拨号功能。Contacts主界面如图1所示:
图1
Contacts有三个标签页组成,最左边的是群组,中间的是所有联系人,右边是常用、收藏联系人。三个标签是ActionBar.Tab类对象,通过ActionBar的newTab()方法构建,主要代码在ActionBarAdapter.java中,添加三个标签代码是:
addTab(TabState.GROUPS, R.drawable.ic_tab_groups, R.string.contactsGroupsLabel);
addTab(TabState.ALL, R.drawable.ic_tab_all, R.string.contactsAllLabel);
addTab(TabState.FAVORITES, R.drawable.ic_tab_starred, R.string.contactsFavoritesLabel);
addTab是一个自定义方法,代码如下:
private void addTab(TabState tabState, int icon, int description) {
final Tab tab = mActionBar.newTab();
tab.setTag(tabState);
tab.setTabListener(mTabListener);
if (mShowTabsAsText) {
tab.setText(description);
} else {
tab.setIcon(icon);
tab.setContentDescription(description);
}
mActionBar.addTab(tab);
}
第二个参数icon就是标签上的图标。
三个标签能够切换,必须实现ActionBar.TabListener监听器接口,必须实现onTabSelected方法:
public abstract void onTabSelected (ActionBar.Tab tab, FragmentTransaction ft)
当选择某个标签时讲调用它。
每个标签都和一个Fragment对应,当选择某个标签时,对应的Fragment就会被调用显示。三个Fragment是: