今儿任务本是做需求分析,不过一早整完了。留下晚上大片空白时间,干嘛?当然看Android~
原来学的时候,觉得Tab这块学的不是很好,不是很理解,有死记硬背的嫌疑。所以,今晚上就花了些时间看看GoogleDeveloper Guide。
话说,工欲善其事必先利其器;第一步。。。,嘿嘿,先美美的眯一会儿,今儿确实累了。人累了就是睡的香,《国际歌》吼得嘶声裂肺额还是一睁眼就二十分中过去了。
好,不扯了,复习Tab。
俗话说(又是俗话说),凡事预则立不预则废。学习也是这样。学这个东东总是要有个思路的。额觉得可以这样看:参照Google 开Tutorials,首先弄清楚展现出Tab效果需要什么类,什么配置,什么资源(关于Tab是什么可以google一下),然后看看这些类之间都有什么关系,是包含是并列?然后再看这几个类或配置文件是怎么样相互联系的,哪个类是程序入口哪个类调用了资源,哪个类负责显示了什么效果。
按照这个思路,来看下Android SDK Docs中hello-tabwidget项目。首先粗略看了遍,额,需要一个ArtistActivity类,AlbumsActivity,SongsActivity,TabSpec,TabHost,几个图标,标识这几个图标的资源文件ic_tab_artists.xml文件,main.xml,HelloTabWidget类,还需要修改下Android Manifest.xml文件。
再看各个文件和类之间都有嘛关系。看HelloTabWidget.java,这是程序入口,里面写了一tuo代码。里面有注释,说:
// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this, ArtistsActivity.class);
我就不翻译了,这样,就可以进入Tab的Activity了,也就是把当前类和ArtistActivity.java 类连接起来了。
// Initialize a TabSpec for each tab and add it to the TabHost spec = tabHost.newTabSpec("artists").setIndicator("Artists", res.getDrawable(R.drawable.ic_tab_artists)) .setContent(intent);
tabHost.addTab(spec);然后把TabSpec加入了TabHost。
那TabWidget是什么用呢?该Tutorial也说了,“The TabHost
requires that a TabWidget
and a FrameLayout
both live somewhere within it. The FrameLayout
is where the content for each tab goes, which is empty now because the TabHost
will automatically embed eachActivity
within it.”
也就是TabHost 需要一个TabWidget和一个FrameLayout来显示TabHost中的东东,并且会自动将自己包含过来的ArtistActivity什么的放在FrameLayout中显示。
好吧,最后还要修改下Android Manifest,把ArtistActivity几个Activity加入进去就得了。
然后,右键,你知道该怎么做的。