Android中选项卡TabHost的基本使用

发布于:2024-04-28 ⋅ 阅读:(26) ⋅ 点赞:(0)

我们要去实现TabHost,主要有两种方法:

1、各选项内容在布局文件中定义。

2、主Activity类继承TabActivity;

3、用getTabHost()方法获取TabHost

1、直接在布局文件中定义TabHost

注意:TabWidget的id必须是@android:id/tabs,FrameLayout的id必须是   @android:id/tabcontent。

接下来使用第一种的实现方法来去实现TabHost

主Activity类:


package com.jiangqq.tabhost;

 

import android.app.TabActivity;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.widget.TabHost;

import android.widget.TabHost.TabSpec;

 

public class TabHostActivity_Second extends TabActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

// setContentView(R.layout.tabhost_second);

// 得到TabHost

TabHost tabHost = this.getTabHost();

 

// 把自己的布局文件添加到TabHost 的FrameLayout中 【注意】很重要的一句代码

LayoutInflater.from(this).inflate(R.layout.tabhost_second,

tabHost.getTabContentView(), true);

// 设置选项卡

// 参数:是选项卡的标签

TabSpec parentSpec = tabHost.newTabSpec("parent");

parentSpec.setIndicator("基类",

this.getResources().getDrawable(R.drawable.announcements256));

parentSpec.setContent(R.id.tab_1);

 

TabSpec subSpec = tabHost.newTabSpec("sub");

subSpec.setIndicator("子类",

this.getResources().getDrawable(R.drawable.content256));

subSpec.setContent(R.id.tab_2);

 

tabHost.addTab(parentSpec);

tabHost.addTab(subSpec);

 

}

}



TabHost的布局文件:


package com.jiangqq.tabhost;

 

import android.app.TabActivity;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.widget.TabHost;

import android.widget.TabHost.TabSpec;

 

public class TabHostActivity_Second extends TabActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

// setContentView(R.layout.tabhost_second);

// 得到TabHost

TabHost tabHost = this.getTabHost();

 

// 把自己的布局文件添加到TabHost 的FrameLayout中 【注意】很重要的一句代码

LayoutInflater.from(this).inflate(R.layout.tabhost_second,

tabHost.getTabContentView(), true);

// 设置选项卡

// 参数:是选项卡的标签

TabSpec parentSpec = tabHost.newTabSpec("parent");

parentSpec.setIndicator("基类",

this.getResources().getDrawable(R.drawable.announcements256));

parentSpec.setContent(R.id.tab_1);

 

TabSpec subSpec = tabHost.newTabSpec("sub");

subSpec.setIndicator("子类",

this.getResources().getDrawable(R.drawable.content256));

subSpec.setContent(R.id.tab_2);

 

tabHost.addTab(parentSpec);

tabHost.addTab(subSpec);

 

}

}



然后使用第二种方法创建TabHost

主Activity类:


package com.jiangqq.tabhost;

 

import android.app.Activity;

import android.os.Bundle;

import android.widget.TabHost;

import android.widget.TabHost.TabSpec;

 

/**

* 本例是实现TabHost----->直接在XML文件中进行配置 【注意】在xml文件中

* TahWidget和FrameLayout标签中的ID,必须要使用Android中默认的

*

* @author jiangqq

*

*/

public class TabHostActivity_First extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.tabhost_first);

// 获取TabHost

TabHost tabHost = (TabHost) findViewById(R.id.tabs);

tabHost.setup();


## 最后

都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。

**技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Android架构师/技术专家?我总结了这 5大块;**

 > 我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 PDF(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。

>![](https://img-blog.csdnimg.cn/img_convert/f2bc6904856e3e706779a6cbb1ac8d54.webp?x-oss-process=image/format,png)

 **Java语言与原理;**
大厂,小厂。Android面试先看你熟不熟悉Java语言

> ![](https://img-blog.csdnimg.cn/img_convert/94ae985dd5a94ee4485aa3be0ce06132.webp?x-oss-process=image/format,png)

**高级UI与自定义view;**
自定义view,Android开发的基本功。

> ![](https://img-blog.csdnimg.cn/img_convert/7646ad5b5cfef2fd03834b1a43a02ad0.webp?x-oss-process=image/format,png)

**性能调优;**
数据结构算法,设计模式。都是这里面的关键基础和重点需要熟练的。

> ![](https://img-blog.csdnimg.cn/img_convert/b8f08d794a2bbc940e06130c62ffae81.webp?x-oss-process=image/format,png)

**NDK开发;**
未来的方向,高薪必会。

> ![](https://img-blog.csdnimg.cn/img_convert/1513e1a8d5724a92b92f138e3404b63f.webp?x-oss-process=image/format,png)

**前沿技术;**
组件化,热升级,热修复,框架设计

> ![](https://img-blog.csdnimg.cn/img_convert/dc95487dea810667e2146296fde78937.webp?x-oss-process=image/format,png)

> 网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

我在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多

当然,想要深入学习并掌握这些能力,并不简单。关于如何学习,做程序员这一行什么工作强度大家都懂,但是不管工作多忙,每周也要雷打不动的抽出 2 小时用来学习。

**不出半年,你就能看出变化!**




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618156601)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

管工作多忙,每周也要雷打不动的抽出 2 小时用来学习。

**不出半年,你就能看出变化!**




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618156601)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**


网站公告

今日签到

点亮在社区的每一天
去签到