Android开发之TabActivity用法实例详解_Android

本文实例讲述了Android开发之TabActivity用法。分享给大家供大家参考,具体如下:

一.简介

TabActivity继承自Activity,目的是让同一界面容纳更多的内容。TabActivity实现标签页的功能,通过导航栏对各个页面进行管理。

二.XML布局文件

注意:

1.TabActivity的布局文件要求以TabHost作为XML布局文件的根。

2.通常我们采用线性布局,所以<TabHost> 的子元素是 <LinearLayout>。

3.<TabWidget>对应Tab
<FrameLayout>则用于包含Tab需要展示的内容
需要注意的是<TabWidget> 和<FrameLayout>的Id 必须使用系统id,分别为android:id/tabs 和 android:id/tabcontent 。
因为系统会使用者两个id来初始化TabHost的两个实例变量(mTabWidget 和 mTabContent)。

4.代码示例

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

三.TabActivity

1.TabHost:TabHost是Tab的载体,用来管理Tab。

2.TabHost的一些函数

(1)获取

TabHost tabHost=this.getTabHost();

(2) 创建TabHost.TabSpec

public TabHost.TabSpec newTabSpec (String tag)

(3)添加tab

public void addTab (TabHost.TabSpec tabSpec)

(4)remove所有的Tabs

public void clearAllTabs ()
public int getCurrentTab ()

(5)  设置当前的Tab (by index)

public void setCurrentTab (int index)

(6) 设置当前的(Tab by tag)

public void setCurrentTabByTag (String tag)

(7)设置TabChanged事件的响应处理

public void setOnTabChangedListener (TabHost.OnTabChangeListener l)

3.TabHost.TabSpec要设置tab的label和content,需要设置TabHost.TabSpec类。TabHost.TabSpec管理:

public String getTag ()
public TabHost.TabSpec setContent
public TabHost.TabSpec setIndicator

(1)Indicator这里的Indicator 就是Tab上的label,它可以

设置label :

setIndicator (CharSequence label)

设置label和icon :

setIndicator (CharSequence label, Drawable icon)

指定某个view :

setIndicator (View view)

(2)Content对于Content ,就是Tab里面的内容,可以

设置View的id :

setContent(int viewId)

用new Intent 来引入其他Activity的内容:setContent(Intent intent)

package com.zhanglong.music;
import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TabHost;
public class MainActivity extends TabActivity
{
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
     WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.main);
    Resources res = getResources();
    TabHost tabHost = getTabHost();
    TabHost.TabSpec spec;
    Intent intent;
    intent = new Intent().setClass(this, ListActivity.class);
    spec = tabHost.newTabSpec("音乐").setIndicator("音乐",
             res.getDrawable(R.drawable.item))
           .setContent(intent);
    tabHost.addTab(spec);
    intent = new Intent().setClass(this, ArtistsActivity.class);
    spec = tabHost.newTabSpec("艺术家").setIndicator("艺术家",
             res.getDrawable(R.drawable.artist))
           .setContent(intent);
    tabHost.addTab(spec);
    intent = new Intent().setClass(this, AlbumsActivity.class);
    spec = tabHost.newTabSpec("专辑").setIndicator("专辑",
             res.getDrawable(R.drawable.album))
           .setContent(intent);
    tabHost.addTab(spec);
    intent = new Intent().setClass(this, SongsActivity.class);
    spec = tabHost.newTabSpec("最近播放").setIndicator("最近播放",
             res.getDrawable(R.drawable.album))
           .setContent(intent);
    tabHost.addTab(spec);
    tabHost.setCurrentTab(0);
  }
}

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
tabactivity
yii分页用法实例详解、tabactivity 替代、tabactivity、android tabactivity、tabactivity 过时,以便于您获取更多的相关知识。

时间: 2024-10-03 04:19:00

Android开发之TabActivity用法实例详解_Android的相关文章

Android开发之TabActivity用法实例详解

本文实例讲述了Android开发之TabActivity用法.分享给大家供大家参考,具体如下: 一.简介 TabActivity继承自Activity,目的是让同一界面容纳更多的内容.TabActivity实现标签页的功能,通过导航栏对各个页面进行管理. 二.XML布局文件 注意: 1.TabActivity的布局文件要求以TabHost作为XML布局文件的根. 2.通常我们采用线性布局,所以<TabHost> 的子元素是 <LinearLayout>. 3.<TabWidg

Android开发之ContentProvider的使用详解_Android

前言         Content Provider为存储数据和获取数据提供了统一的接口,它可以完成在不同应用程序下的数据共享,而在上一篇文章Android开发之SQLite的使用方法讲到的SQLite只能在同一个程序中共享数据.另外android为一些常见的数据,比如说音频,视频,图片,通讯录等提供了Content Provider,这样我们就可以很方便的对这些类型的数据操作了.使用ContentProvider的好处是开发人员不需要考虑数据内部是怎么存储的,比如说如果我们想利用Conten

Android开发之DiffUtil的使用详解_Android

写在前面的话 DiffUtil是一个查找集合变化的工具类,是搭配RecyclerView一起使用的,如果你还不了解RecyclerView,可以阅读一些资料,这里就不介绍了. 先放效果图: 可以看到,当我们点击按钮的时候,这个RecyclerView所显示的集合发生了改变,有的元素被增加了(8.Jason),也有的元素被移动了(3.Rose),甚至是被修改了(2.Fndroid). RecyclerView对于每个Item的动画是以不同方式刷新的:      notifyItemInserted

Android开发之TimePicker控件用法实例详解_Android

本文实例分析了Android开发之TimePicker控件用法.分享给大家供大家参考,具体如下: 新建项目: New Android Project-> Project name:HelloSpinner Build Target:Android 2.2 Application name:HelloSpinner Package name:com.b510 Create Activity:MainActivity Min SDK Version:9 Finish 运行效果: 如果: return

android之camera用法实例详解_Android

本文实例讲述了android之camera用法.分享给大家供大家参考.具体如下: 1.关于预览横竖差90度的问题 原因分析 经过查证和实验,可以证实:Android提供的SDK(android.hardware.Camera)里大概不能正常的使用竖屏(portrait layout)加载照相机,当用竖屏模式加载照相机时会产生以下情况: ①. 照相机成像左倾90度(倾斜): ②. 照相机成像长宽比例不对(失比). 之所以是"大概",原因是因为可能可以通过一些比较复杂的手段解决.如果以上成

Android开发之浏览器用法实例详解(调用uc,opera,qq浏览器访问网页)_Android

本文实例讲述了Android开发之浏览器用法.分享给大家供大家参考,具体如下: 一.启动android默认浏览器 Intent intent = new Intent(); intent.setAction("android.intent.action.VIEW"); Uri content_url = Uri.parse("http://www.jb51.net"); intent.setData(content_url); startActivity(inten

Android开发之Animations动画用法实例详解_Android

本文实例讲述了Android开发之Animations动画用法.分享给大家供大家参考,具体如下: 一.动画类型 Android的animation由四种类型组成:alpha.scale.translate.rotate XML配置文件中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 Java Code代码中 AlphaAnimation 渐变透明度动画效果 ScaleAnimation 渐变尺寸

Android Dialog对话框用法实例详解_Android

本文实例讲述了Android Dialog对话框用法.分享给大家供大家参考,具体如下: Activities提供了一种方便管理的创建.保存.回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int),dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog). 1. onCreat

Android Toast通知用法实例详解_Android

本文实例讲述了Android Toast通知用法.分享给大家供大家参考,具体如下: Toast在手机屏幕上向用户显示一条信息,一段时间后信息会自动消失. 1.默认用法 复制代码 代码如下: Toast.makeText(getApplicationContext(), "默认Toast样式",Toast.LENGTH_SHORT).show(); 2.Fragment中的用法 复制代码 代码如下: Toast.makeText(getActivity(),"网络连接错误,请检