1.直接继承TabActivity,函数getTabHost拿到TabActivity里面的TabHost对象
package com.example.tabtest; import android.app.TabActivity; import android.graphics.Color; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.widget.TabHost; public class MainActivity extends TabActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TabHost host = getTabHost(); //from(this)从这个TabActivity获取LayoutInflater LayoutInflater.from(this).inflate( R.layout.host, //host.xml存放Tab布局 host.getTabContentView(), //通过TabHost获取存放Tab标签页内容的FrameLayout true); host.setBackgroundColor(Color.WHITE); host.addTab(host.newTabSpec("One")// make a new Tab .setIndicator("", getResources().getDrawable(R.drawable.gimp)) // set the Title and Icon .setContent(R.id.blue)); host.addTab(host.newTabSpec("Two")// make a new Tab .setIndicator("", getResources().getDrawable(R.drawable.mumule)) // set the Title and Icon .setContent(R.id.red)); host.addTab(host.newTabSpec("Three")// make a new Tab .setIndicator("", getResources().getDrawable(R.drawable.notepad)) // set the Title and Icon .setContent(R.id.green)); //setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
2.如果不继承TabActivity,则TabHost需在xml文件中定义
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/hometabs" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <!-- TabHost必须包含一个 TabWidget和一个FrameLayout--> <TabHost android:id="@+id/tabhost" android:layout_width="fill_parent" android:layout_height="wrap_content"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <!-- TabWidget的id属性必须为 @android:id/tabs--> <TabWidget android:id="@android:id/tabs" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <!-- FrameLayout的id属性必须为 @android:id/tabcontent--> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/view1" android:layout_width="fill_parent" android:layout_height="fill_parent"/> <TextView android:id="@+id/view2" android:layout_width="fill_parent" android:layout_height="fill_parent"/> <TextView android:id="@+id/view3" android:layout_width="fill_parent" android:layout_height="fill_parent"/> </FrameLayout> </LinearLayout> </TabHost> </LinearLayout>
package com.example.tabtest2; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.widget.TabHost; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TabHost host = (TabHost)findViewById(R.id.tabhost); //没有继承TabActivity时,通过该种方法加载启动tabHost host.setup(); host.addTab(host.newTabSpec("tab1") .setIndicator("", getResources().getDrawable(R.drawable.win)) .setContent(R.id.view1)); host.addTab(host.newTabSpec("tab3") .setIndicator("", getResources().getDrawable(R.drawable.draw)) .setContent(R.id.view3)); host.addTab(host.newTabSpec("tab2") .setIndicator("", getResources().getDrawable(R.drawable.lose)) .setContent(R.id.view2)); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
相关推荐
通过上述步骤,你已经成功地使用TabHost创建了一个基本的选项卡式界面。在实际应用中,你可能需要根据具体需求调整和扩展这个基础结构,例如使用Fragment替代Activity,或者实现更复杂的交互逻辑。记得在项目中导入...
例如,你可以使用TabHost创建一个顶部的选项卡栏,每个选项卡下面嵌套一个ViewPager,每个ViewPager再显示一个由ListView构成的页面。这样,用户可以通过选项卡切换不同类别,每个类别下又可以通过滑动查看多条...
本教程将专注于使用TabHost创建一个美观且功能完善的菜单系统。TabHost是Android SDK提供的一种组件,用于实现多标签页的界面布局,使得用户可以在不同的功能模块之间轻松切换。 **一、TabHost简介** TabHost是...
通过这个"WeiXinTabDemo"项目,你可以深入理解如何使用TabHost创建多标签页的界面,并实现类似微信那样实时显示未读信息的功能。这是一个很好的起点,对于初学者来说,能够帮助他们掌握Android基础组件的使用,为...
综上所述,"TabHost内嵌ActivityGroup界面管理源码.zip"这个压缩包文件可能包含了一个使用旧版Android界面管理技术的示例项目,展示了如何利用TabHost创建带有标签的导航,以及如何使用ActivityGroup在单个Activity...
3. **设置内部TabHost的布局**:为内部TabHost创建一个新的布局文件,包含其Tab标签和内容视图。使用`TabHost.setup()`方法初始化内部TabHost,并设置其内容视图。 4. **创建内部TabSpec**:像创建主TabHost一样,...
以下是一个简单的示例代码,展示如何使用TabHost创建两个选项卡,每个选项卡对应一个Activity: ```java TabHost tabHost = (TabHost) findViewById(R.id.tab_host); tabHost.setup(); TabSpec spec1 = tabHost....
在开发类似新浪微博客户端的应用时,我们可以利用TabHost创建多个标签页,分别展示“首页”、“消息”、“发现”等不同功能。每个标签页对应的Activity可以负责加载相应的内容,例如: - 首页Activity:显示微博...
`TabHost`是Android开发中的一个关键组件,主要用于创建具有标签页导航的用户界面。在Android早期版本中,它是实现多视图切换的常用方式,每个标签页对应一个不同的活动(Activity)或帧布局(FrameLayout)。让我们...
1. **设置主TabHost**:在主TabHost中,开发者首先需要通过`setup()`方法初始化TabHost,然后为每个子TabHost创建TabSpec。 2. **创建子TabHost**:对于每个子TabHost,也需要同样的初始化过程,包括设置TabWidget...
总结一下,使用TabHost创建带有图标和文字的标题,你需要: 1. 在XML布局文件中定义TabHost及其组件。 2. 初始化TabHost并调用`setup()`方法。 3. 使用`newTabSpec()`创建标签,设置标签的显示内容,可以包含图标和...
`TabHost`是Android中创建多标签界面的利器,虽然现在推荐使用`Fragment`配合`TabLayout`(来自Android Design Support Library)来实现更现代的导航效果,但在某些场景下,`TabHost`仍然是一个实用的选择。...
下面通过一个具体的例子来展示如何使用 TabHost 创建一个多标签页面。 ##### 1. 布局文件 布局文件使用 FrameLayout 来作为 TabHost 的内容展示区。在这个例子中,我们创建了三个 TextView,分别代表三个不同的 ...
这个项目“Android源代码:选项卡tabhostdemo”不仅展示了如何使用TabHost创建选项卡,还可能涉及到使用Adapter(如TabPagerAdapter)来管理和创建多个Fragment,以提高代码的可复用性和维护性。通过阅读和学习这个...
总之,"Android应用源码之高仿网易客户端UI(tabhost)"为Android开发者提供了一个生动的实战教学,通过实践这个项目,开发者可以掌握如何使用TabHost创建多标签界面,并从中了解到Android应用设计的基本原则和最佳...
通过这个“tabhost练习”,你可以学习到如何使用TabHost创建多标签界面,以及如何处理标签切换事件。同时,这也是一个很好的机会去探索Android UI组件的底层工作原理,为今后使用更高级的组件打下基础。如果你想要...
总的来说,这个项目为开发者提供了一个实践Android UI设计和交互的实例,特别是对于那些想要学习如何使用Gallery和TabHost创建复杂、互动性强的界面的开发者来说,这是一个非常有价值的资源。通过分析和理解这个源码...
在安卓应用开发中,创建一个用户界面(UI)是至关重要的,因为它直接影响到用户的使用体验。...通过学习并实践这些内容,开发者可以掌握如何利用TabHost创建类似网易新闻客户端的多标签界面,提升应用的用户体验。
在Android应用开发中,TabHost是一个非常重要的组件,它用于创建多标签的界面,让用户能够通过不同的标签页浏览和切换不同的功能或内容。本示例是关于如何在Android中实现嵌套的TabHost,即两个层级的TabHost,类似...