本文共 2574 字,大约阅读时间需要 8 分钟。
上次说了可以用两种方法实现Tab Layout,之前写了单个Activity实现,现在来用多个Activity来实现,这篇文章是翻译的android develop网站上的文章!
单个Activity实现就是在一个Activity里面切换显示内容,我们上次用的是三个TextView。这里我们用3个Activity实现,每次点击一个tab的时候,就打开一个新的Activity!我们创建一个tabbed UI,为每一个tab创建一个Activity!
第一步:创建一个新的Android项目,命名为:HelloTabWidget。
第二步:在项目中创建3个单独的Activity: ArtistsActivity
, AlbumsActivity
, andSongsActivity
. 在每一个Activity里面创建一个TextView来显示每个tab的内容!这里举一个例子,其他的两个类似:
public class ArtistsActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView textview = new TextView(this); textview.setText("This is the Artists tab"); setContentView(textview); }}把创建的3个Activity加入到 Android Manifest 文件中!
第三步:我们为每个tab准备两个图片,一个是选中该tab时显示的图片,一个是没有选中该tab时显示的图片,如下所示:
在项目中新建如下目录res/drawable/,在该目录下创建ic_tab_artists.xml文件,作用即是根据tab是否选中来设置显示的图标,文件内容如下:
第四步:打开 res/layout/main.xml 文件,修改内容如下:
第五步:打开 HelloTabWidget.java 文件,继承自TabActivity:
public class HelloTabWidget extends TabActivity第六步:在oncreate()方法中添加如下代码:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Resources res = getResources(); // Resource object to get Drawables TabHost tabHost = getTabHost(); // The activity TabHost TabHost.TabSpec spec; // Resusable TabSpec for each tab Intent intent; // Reusable Intent for each tab // Create an Intent to launch an Activity for the tab (to be reused) intent = new Intent().setClass(this, ArtistsActivity.class); // 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); // Do the same for the other tabs intent = new Intent().setClass(this, AlbumsActivity.class); spec = tabHost.newTabSpec("albums").setIndicator("Albums", res.getDrawable(R.drawable.ic_tab_albums)) .setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, SongsActivity.class); spec = tabHost.newTabSpec("songs").setIndicator("Songs", res.getDrawable(R.drawable.ic_tab_songs)) .setContent(intent); tabHost.addTab(spec); tabHost.setCurrentTab(2);}上面的代码和单个Activity实现的代码基本一样,这里就不再逐行解释。
第七步:打开Android Manifest file文件,添加 NoTitleBar
主题到 HelloTabWidget's <activity>
标签中,如下所示:
第八步:运行程序,截图如下:
转载地址:http://mpqab.baihongyu.com/