android:tabHost学习记录

Android 导航条效果实现(一) TabActivity+TabHost TabActivity(已过时)+TabHost 实现选项卡效果: (一)、相关类介绍: 1、TabHost:提供选项卡(Tab页)的窗口视图容器。 2、TabSpec:每个选项卡都包含选项卡指示符、内容和用于识别选项卡的标签。 阅读详情

一、TabHost可以很方便的在窗口上放置多个标签页,每个标签页相当于获得了一个与外部容器相同大小的组件摆放区域。TabHost仅仅是一个简单的容器,它提供了如下两个方法创建选项卡、添加选项卡:

-->newTabSpec(String tag):创建选项卡

-->addTab(TabHost.TabSpec tabSpec):添加选项卡

使用TabHost的一般步骤:

1.在界面布局中定义TabHost组件,并为该组件定义该选项卡的内容;

2.Activity应该继承TabActivity;

3.调用TabActivity的getTabHost()获取TabHost对象;

4.通过TabHost对象的方法来创建选项卡,添加选项卡。


package com.javaee;

import android.app.Activity;
import android.app.TabActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;

public class MainActivity extends TabActivity implements OnTabChangeListener{
    /** Called when the activity is first created. */
	private TabHost tabHost;
	private int myMenuSetting = 0;
	private Menu menu;
	private static final int myMenuResources[] = {R.menu.a_menu, R.menu.b_menu, R.menu.c_menu};
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        tabHost = getTabHost();
        LayoutInflater.from(this).inflate(R.layout.main, tabHost.getTabContentView(), true);
        tabHost.setBackgroundColor(Color.argb(150, 22, 70, 150));
        
        tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("A", getResources().getDrawable(R.drawable.gimp)).setContent(R.id.layout01));
        tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("B", getResources().getDrawable(R.drawable.mumule)).setContent(R.id.layout02));
        tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("C", getResources().getDrawable(R.drawable.notepad)).setContent(R.id.layout03));
        
        tabHost.setOnTabChangedListener(this);
        
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    	// TODO Auto-generated method stub
    	this.menu = menu;
    	menu.clear();
    	
    	MenuInflater inflater = getMenuInflater();
    	switch (myMenuSetting) {
		case 0:
			inflater.inflate(myMenuResources[0], menu);
			break;
		case 1:
			inflater.inflate(myMenuResources[1], menu);
			break;
		case 2:
			inflater.inflate(myMenuResources[2], menu);
		default:
			break;
		}
    	return super.onCreateOptionsMenu(menu);
    }
    
	@Override
	public void onTabChanged(String tabId) {
		// TODO Auto-generated method stub
		if(tabId.equals("tab1")){
			myMenuSetting = 0;
		}else if(tabId.equals("tab2")){
			myMenuSetting = 1;
		}else if(tabId.equals("tab3")){
			myMenuSetting = 2;
		}
		if(menu != null){
			onCreateOptionsMenu(menu);
		}
		
	}
}



通过LayoutInflater.from(this).inflate(R.layout.main, tabHost.getContentView, true)为TabHost制定布局;

通过tabHost.addTab(TabHost.TabSpec tabSpec);添加选项卡标签;

通过tabSpec.setIndicator()设置标签样式,其中有三个方法:

1、setIndicator(CharSequence label):指定标签的文本信息;

2、setIndicator(CharSequence label, Drawable icon):指定文本图片标签;

3、setIndicator(View):通过一个View来指定标签。

通过setSpec.setContent()设置各选项卡的内容,其中有三个方法:

1、setContent(TabHost.TabContentFactory contentFactory):通过TabHost.TabContentFactory工厂创建选项卡的内容;

2、setContent(int viewId):通过一个id制定选项卡的内容;

3、setContent(Intent intent):通过一个Intent指定选项卡跳转到一个Activity。



生成LayoutInflater有三种方式:

1、inflater = getLayoutInflater();

2、inflater = LayoutInflater.from(this);
3、inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);

   LayoutInflater.inflate:将Layout文件转换为View。专门供Layout使用的Inflate,虽然Layout也是View的子类,但在android中如果想将其他的xml中的Layout转换为View放入.java代码中操作 , 只能通过Inflater,而不能直接通过findViewById()。



手把手教你用ZYNQ PS端GPIO模拟SPI驱动OLED屏幕(附Vivado工程) 本文详细介绍了如何利用ZYNQ PS端的EMIO功能,通过GPIO模拟SPI协议驱动SSD1306 OLED屏幕。从Vivado工程配置、SPI协议软件实现到SSD1306驱动开发,提供了完整的解决方案和优化技巧,适合嵌入式开发者快速上手。 阅读详情

相关推荐

别再死磕GAN了!用PyTorch从零实现DDPM图像生成(附CIFAR-10完整代码)

本文详细介绍了如何使用PyTorch从零实现DDPM(Denoising Diffusion Probabilistic Models)图像生成模型,并在CIFAR-10数据集上进行训练和测试。通过对比GAN,DDPM展现出更稳定的训练过程和更高质量的生成效果。文章包含完整的代码实现、训练技巧和优化建议,帮助开发者快速掌握这一前沿的生成模型技术。

weixin_33720078的博客 630

android tabhost 切换动画,【已解决】Android中如何控制Tab页面切换,即如何重写TabHost的OnTabChangeListener...

【问题】Android中,想要实现TAB页面的切换时,做一些事情,后来得知就是去重写TabHost的OnTabChangeListener。所以要去搞懂如何重写OnTabChangeListener。【折腾过程】1.搜:TabHost OnTabChangeListener参考:最终实现了:public class MainActivity extends FragmentActivity{@Ov...

weixin_28865923的博客 292

树莓派通过TTL3.3转485 Modbus采集水表

所需道具 树莓派0,我用的是树莓派zero wh; 具有光电直读功能的有线水表,我用的是咸鱼淘的埃美柯LXSY-20E1; TTL3.3 转 485模块,带隔离的贵些; 5V转12V升压模块。 原理 树莓派有UART(GPIO14 Tx 和 GPIO15 Rx)串口通讯功能,电器特性是3.3V TTL,直读远传水表支持M-Bus/485通讯接口,我买的光电直读水表485要求12V供电(根据仪表厂家说明书)。TTL和485虽然都是串口通讯,但电器特性不一样,不能直接接!我已经烧掉一个树莓派...

xhydongda的博客 3443

android_TabHost设置点击事件newTapSpec_141001

找对TabHost的tab设置点击事件,然后,在网上发现了好多的

ylineyline的专栏 4269

【用unity实现100个游戏之18】从零开始制作一个类CSGO/CS2、CF第一人称FPS射击游戏——基础篇1(附项目源码)

生存和射击游戏一直是我的最爱,说起3D最普遍的应该就是射击系统了,你可以在任何情况下加入射击功能,所以我写下了这篇FPS开发记录。希望对你有帮助。在这个项目中,你将学习如何设计和实现射击系统、武器系统、玩家控制、场景设计等方面的内容。通过这个项目,你将深入了解游戏开发中的许多核心概念和技术,并且在实践中不断提升自己。本项目将带你从零开始逐步实现一个完整的第一人称射击游戏,并且会逐步引入一些高级功能,如特效、声音等。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 5500

2026.1.9:最新VSCode集成claude插件完美解决方案,跳过登录界面,使用国内Kimi K2进行计费

本文介绍了如何安装配置Claude插件并连接Kimi K2 API的详细步骤:1)搜索安装Claude插件;2)进入设置关闭登录提示;3)在settings.json中添加API配置,包括ANTHROPIC_AUTH_TOKEN(需替换为Kimi API Key)和ANTHROPIC_BASE_URL;4)通过Kimi官网获取API Key。完成配置后即可正常使用该插件。文中配有完整的操作截图指引。

拥抱具身智能,昇腾Ascend C 8722

Android控件 TabHost,Android控件开发之TabHost

/*** Tab选项卡类似与电话本的界面,通过多个标签切换不同的内容,要实现这个效果,首先要知道TabHost,* 它是一个用来存放多个Tab标签的容器,每一个Tab都可以对应自己的布局,比如,电话本中的Tab布局就* 是一个线性布局* 要使用TabHost,首先要通过getTabHost方法获取TabHost的对象,然后通过addTab方法来向* TabHost中添加Tab,当然每个Tab在切换...

weixin_34410975的博客 444

[Python] 如何使用 Python 调用 Dify 工作流服务实现自动化翻译

本文介绍了如何使用Python调用Dify的API实现文本翻译自动化。Dify作为AI开发平台,其工作流功能可执行文本处理、翻译等任务。选择Python调用Dify的优势在于职责划分清晰:Dify专注AI服务,Python处理文件操作等非AI任务。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 1096

mTabLayout.setOnTabSelectedListener is deprecated

用addOnTabSelectedListener代替,方法一样。 源码: /** * @deprecated Use {@link #addOnTabSelectedListener(OnTabSelectedListener)} and * {@link #removeOnTabSelectedListener(OnTabSelectedListener)}.

yechaoa 1731

STM32F103RCT6的FLASH读写操作

STM32F103RCT6是一款常用的32位微控制器,它具有内置的FLASH存储器,可以用于存储程序代码和数据。在本文中,我们将详细介绍如何进行STM32F103RCT6的FLASH读写操作,并提供相应的源代码。写入数据时,我们通过将数据直接写入FLASH地址来完成。通过使用适当的API和规则,我们可以有效地读取和写入数据。写入FLASH时,我们需要按特定的规则进行编程。首先,我们需要包含适当的头文件和定义相关的宏和变量,以便在代码中使用FLASH API。类型的指针,我们可以直接读取FLASH中的数据。

UplKubernetes的博客 1034

【离线OCR】微信离线实现图片OCR文本和表格识别

基于微信本地OCR引擎(由最新版微信自动安装)。通过Python对其官方调用逻辑进行完整翻译和封装,使开发者可以用简单的API调用其强大的OCR功能。

专注于医院数据分析技术与系统开发的创作与分享。 2624

Android UI控件系列:TabWidget(切换卡)

Tab选项卡类似与电话本的界面,通过多个标签切换不同的内容,要实现这个效果,首先要知道TabHost,它是一个用来存放多个Tab标签的容器,每一个Tab都可以对应自己的布局,比如,电话本中的Tab布局就是一个线性布局 要使用TabHost,首先要通过getTabHost方法获取TabHost的对象,然后通过addTab方法来向TabHost中添加Tab,当然每个Tab在切换时都会产生一个事件

u013244517的专栏 590

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

android tabhost的使用方法,Android TabHost组件使用方法详解

最近研究了一下contacts源码,仿照上面自己写了一个tabhosttest程序,现整理如下:main.xml布局文件:android:id="@android:id/tabhost"android:layout_width="match_parent"android:layout_height="match_parent">android:orientation="vertical"an...

weixin_32821477的博客 402

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

android中TabHost+intent的使用

分类: Android 2011-09-05 11:56 1236人阅读 评论(5) 收藏 举报 本文将记录如何一步一步做TabHost的,最终实现效果如下图      下面具体讲解如何一步一步做出来这个效果的! 1:创建工程和类如下图所示  2: 编写ic_tab_artists.xml [html] view plaincopyprint?

duanyu218的专栏 2706

Android UI组件学习——选项卡(TabHost)的功能和用法

Android 选项卡(TabHost)的功能和用法 TabHost是一种非常实用的组件,TabHost可以很方便地在窗口上放置多个标签页,每个标签页相当于获得了一个 与外部容器相同大小的组件摆放区域。通过这种方式,就可以在一个容器里放置很多组件,例如手机系统都会在同 一个窗口中定义多个标签页来显示通话记录,包括“未接电话”、“已接电话”、“呼出电话等”。 与TabHost结合使用的还有如下组件 TabWidget:代表选项卡的标签条 TabSpec:代表选项卡的一个Tab页面 TabHost仅仅是一

霸王龙的博客 743

Android ScrollView和TabHost混合使用问题记录

TabHost中的标签页众多,所以要做成横向可滚动的,在TabWidget外加一层HorizontalScrollView. 由于TabHost中的item是TextView,并且每个TextView的宽度不一样,这样就会导致没动到最后的时候会多出来一段空白,具体的原因如下: TabWidget has measureWithLargestChild set to true by defaul...

kevinlwf的专栏 344

android tabhost学习

  1.写好配置文件 tabhost.xml <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android...

泪落尘烟 111

Android 使用TabHost 无法显示图标

在自学黑马项目视频--短信智能管理器, 主布局是使用TabHost进行布局,明明看完视频,自己再敲代码,没问题,却总是没有图标。   关键代码:   private TabHost mTabHost; private void initTabHost() { addTabSpec("conversation","会话",R.mipmap.tab_conversation,new

android_lyp的博客 1237

Android TabHost 如何改变下划线样式

最近项目开发,无意中用到TabHost作为分栏展示,可是要调整选中栏下划线颜色,居然难倒了,网上找了一遍还是没有收获,这里记录一下,给相同问题的人一点参考; // tab栏初始化 TabHost tab = (TabHost) findViewById(android.R.id.tabhost); //初始化TabHost容器 tab.se...

zhuc_dongyc的博客 1481

Android TabHost使用记录(引用了2015从头再来的博客)

使用tabHost可以实现点击底部菜单跳转Activity的动作,现在大多数APP都用这种方式。 不继承TabActivity实现对应功能。 tabhost.xml <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tabhost" //注意id写法,继承T

fdsczk的博客 394

Android:TabHost

转自移动开发者社区 前言   本章内容是 android.widget.TabHost,译为"选项卡容器",版本为Android 2.3 r1,翻译来自"madgoat",欢迎大家访问他的博客:http://madgoat.cn/,再次感谢"madgoat" !期待你

欧阳天涵的专栏 939

AS之TabHost

1.概述:TabHost(选项卡组件),可以在一个窗口中显示多个标签栏的内容。主要功能是进行应用程序的分类管理,比如手机的通话记录,未接来电,已接电话。 2.TabHost(选项卡)构成 TabHost:根布局 选项卡整体布局:可设置标签栏和标签页内容的布局位置 标签栏(TabWidget):用于实现一个多标签的用户见面,通过将一个复杂的对话框分割成若干个标签页,实现对信息的分类显示和管理 标签...

qq_44230959的博客 429

菜鸟学Android之TabHost(一)

比较喜欢TabHost这个东东,结果做起来可是费了一番功夫。

洋小洋 993

Android Tabhost with FragmentActivity

接續Android TabHost中切換Activity記錄了使用ActivityGroup達到在TabHost中切換Activity的方法,也在Android Screen Orientation Event螢幕方向處理+Acitivity Liftcycle記錄了當螢幕方向改變時的處理,這篇小蛙繼續記錄用FragmentActivity取代ActivityGroup,透過FragmentA

天上飘云的专栏 4415

android学习笔记十——TabHost

TabHost——标签页 ==》 TabHost,可以在窗口放置多个标签页,每个标签页相当于获得了一个与外部容器相同大小的组件摆放区域。 通过此种方式可以实现在一个容器放置更多组件(EG:通话记录实现方式)。 TabHost仅仅是一个简单的容器,其提供了如下两个方法来创建选项卡、添加选项卡 ==》   newTabSpec(String tag):创建选项卡   addTab(Tab...

weixin_30446197的博客 134

Android TabHost

转载至:http://blog.youkuaiyun.com/dawanganban/article/details/9916461 Tab标签页是界面设计时经常使用的界面控件,可以实现多个分页之间的快速切换,每个分页可以显示不同的内容 Tab标签页的使用       1.首先要设计所有的分页的界面布局       2.在分页设计完成后,使用代码建立Tab标签页,并给每个分页添加标识和

zxg19的专栏 656
上一篇: android:progressBar/seekBar/ratingBar学习记录
下一篇: android:datePicker与timePicker学习记录
extjavaee
博客等级 码龄16年 7粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值