TAB切换先上图,tab标题没有添加样式,因为setIndicator可以直接接收View,所以可以自己编辑样式:

也可以实现OnTabChangeListener监听tab的点击,改变tab点击后的样式风格

1、首先创建TabHost布局,TabActivity使用TabHost 为根目录,根目录必须使用ID:android:id="@android:id/tabhost"

窗体必须使用ID:android:id="@android:id/tabcontent"

Tab标题必须使用Id:android:id="@android:id/tabs"

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:id="@android:id/tabhost"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical">
<FrameLayout
android:layout_height="0dip"
android:layout_width="fill_parent"
android:layout_weight="1"
android:id="@android:id/tabcontent"> </FrameLayout>
<TabWidget android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@android:id/tabs"></TabWidget>
</LinearLayout>
</TabHost>

 

2、创建Activity

package com.demo.tabactivity;

import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TabHost; /**
* 这里实现继承tabActivity 实现tab页切换
* @author Administrator
*
*/
public class MainActivity extends TabActivity { TabHost tab_host; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tabs);
//获得tabhost
tab_host = getTabHost();
//往tabhost添加tab,这里添加三个
createTabOne() ;
createTabTwo();
createTabThree();
} /**
* 添加的tab页,实现方式也可以实现TabContentFactory接口来创建tab
*/
public void createTabOne() {
//创建tab窗体
Intent intent = new Intent(MainActivity.this,OneActivity.class);
//添加到tabost,其中setIndicator为设置tab标题,可以自己编辑Tab标题的样式内容,包括文字货图标
tab_host.addTab(tab_host.newTabSpec("第一页").setIndicator("第一页", null).setContent(intent)); } /**
* 添加的tab页
*/
public void createTabTwo() {
Intent intent = new Intent(MainActivity.this,TwoActivity.class);
tab_host.addTab(tab_host.newTabSpec("第二页").setIndicator("第二页", null).setContent(intent)); } /**
* 添加的tab页
*/
public void createTabThree() {
Intent intent = new Intent(MainActivity.this,ThreeActivity.class);
tab_host.addTab(tab_host.newTabSpec("第三页").setIndicator("第三页", null).setContent(intent)); }
}

  其中OneActivity,TwoActivity,ThreeActivity为普通继承Activity的窗体,就不贴代码了

 

TabActivity 切换Activity界面的更多相关文章

  1. 使用ActivityGroup来切换Activity和Layout

    前言 在一个主界面中做Activity切换一般都会用TabActivity,使用方便,Activity互相之间相对独立,但是可定制性不强,而且修改起来很麻烦.当然也可以把layout分开,把逻辑代码全 ...

  2. Android TabActivity与Activity之间的动画跳转(主要Tabhost中跳转出来的动画效果解决)

    首先,要说的是ActivityA到ActivityB的切换这个相对简单,只要overridePendingTransition(In,out). 这里不就说了.但是这里要说名的ActivityA不能T ...

  3. 滑动切换Activity代码

    最近需要对练习项目中的代码进行优化,发现很多代码写起来远比想象的困难很多.刚接触Android时间不长,很多东西都不能融会贯通,所以才会有这样的问题存在,当然学习中遇到的问题很有必要做个总结.想想这个 ...

  4. Android activity界面跳转动画

    实现activity界面跳转动画 1.在startActivity方法之后加入: overridePendingTransition(R.anim.pull_in_right, R.anim.pull ...

  5. ListView使用自定义适配器的情况下实现适配器的文本和图标控件点击事件执行Activity界面中的方法

    ListView使用的是自定义适配器,列表项的布局文件中含有文本和图标,实现文本区域和图标区域的点击事件. 实现思路:在自定义适配器MyArrayAdapter 类型中自定义接口和接口方法,分别设置文 ...

  6. ListView使用自定义适配器的情况下实现适配器的控件点击事件执行Activity界面中的方法

    如果ListView使用的是自定义的适配器,比如MyArrayAdapter extends ArrayAdapter<String> 那么,如何实现适配器中的点击事件执行activity ...

  7. 使用appium做自动化时如何切换activity

    在使用appium过程中遇到了执行一个用例时有多个不同的acitivity的情况,以下为app内部切换acitivity的方法: 如果仅需要切换一次activity,可以通过设置desired_cap ...

  8. android项目中刷新activity界面

    android项目中在sqlite数据库插入/更新/删除数据后: 1. 刷新当前activity界面数据(手动刷新): 在activity类下新增一个refresh()方法: /** * 刷新, 这样 ...

  9. CentOS6.5 切换 图形界面 与 命令行界面

    CentOS6.5 切换图形界面与命令行界面 [1]场景1:图形界面 -> 命令行界面 方式一(快捷键):Ctrl + Alt + F2 方式二(终端命令):init 3 (PS:init与3之 ...

随机推荐

  1. div嵌套导致子区域margin-top失效不起作用的解决方法

    有两个嵌套关系的div,如果外层div的父元素padding值为0, 那么内层div的margin-top或者margin-bottom的值会"转移"给外层div,使父元素产生上外 ...

  2. jquey与javascript相通运用查找(全)

    1.addClass\removeClass\classList(js) jQ:$('#div').addClass('hover')=====document.getElementById('div ...

  3. jQuery 弹出层脚本

    直接贴代码: $.extend({ closeBox: function (o, x, fn) { $('#' + o).fadeOut(500, function () { if (fn & ...

  4. centos6安装svn1.9

    增加svn的源,vi /etc/yum.repos.d/wandisco-svn.repo [WandiscoSVN] name=Wandisco SVN Repo baseurl=http://op ...

  5. 广度优先搜索(BFS)

    定义 维基百科:https://en.wikipedia.org/wiki/Breadth-first_search 给定图G=(V,E)和一个可识别的源结点s,广度优先搜索对图G中的边进行系统性的探 ...

  6. Mysql Specified key was too long; max key length is 767 bytes

    今天导入一个数据库时,看到以下报错信息: Specified key was too bytes 直译就是索引键太长,最大为767字节. 查看sql库表文件,发现有一列定义如下: 列   名:cont ...

  7. windows平台解决quick3.5final + sublimeText3 模拟器找不到的问题

    下载了quick3.5 准备在sublime上进行开发,结果发现quick3.5中的player模拟器不见了,原来模拟器移到了quick引擎主目录下的 /tools/simulator/runtime ...

  8. ElasticSearch与Spring Boot集成问题

    1.None of the configured nodes are available 或者 org.elasticsearch.transport.RemoteTransportException ...

  9. DTP激活时报Overlapping

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  10. Hive数据仓库

    Hive 是一个基于Hadoop分布式文件系统(HDFS)之上的数据仓库架构,同时依赖于MapReduce.适用于大数据集的批处理,而不适用于低延迟快速查询. Hive将用户的HiveQL语句转换为M ...