博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tab Layout 之多个Activity实现
阅读量:2393 次
发布时间:2019-05-10

本文共 2574 字,大约阅读时间需要 8 分钟。

        上次说了可以用两种方法实现Tab Layout,之前写了单个Activity实现,现在来用多个Activity来实现,这篇文章是翻译的android develop网站上的文章!

         单个Activity实现就是在一个Activity里面切换显示内容,我们上次用的是三个TextView。这里我们用3个Activity实现,每次点击一个tab的时候,就打开一个新的Activity!我们创建一个tabbed UI,为每一个tab创建一个Activity!

      第一步:创建一个新的Android项目,命名为:HelloTabWidget。

      第二步:在项目中创建3个单独的Activity: ArtistsActivityAlbumsActivity, 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/

你可能感兴趣的文章
QT配置文件
查看>>
QT .pro配置文件2
查看>>
Qt 模态与非模态对话框
查看>>
Qt C++中的关键字explicit .
查看>>
qtcreator中常用快捷键
查看>>
PowerDesigner 简介
查看>>
VS2008快捷键大全
查看>>
Access 操作或事件已被禁用模式阻止
查看>>
C# 控件置于最顶层、最底层
查看>>
几个常见的压缩算法
查看>>
浮点数的存储
查看>>
点到线段的距离
查看>>
HTML_5_Canvas
查看>>
NuGet学习笔记(1)——初识NuGet及快速安装使用
查看>>
C# 数据类型基础,堆栈,装箱与拆箱
查看>>
HTML 中的<div>
查看>>
Mysql Fabric实现学习笔记
查看>>
Spring JTA multiple resource transactions in Tomcat with Atomikos example
查看>>
How to setup multiple data sources with Spring and JPA
查看>>
MySQL 5.7 Fabric: any good?
查看>>