Android Tabhost使用方法详解_Android

Android 实现tab视图有2种方法,一种是在布局页面中定义<tabhost>标签,另一种就是继承tabactivity.但是我比较喜欢第二种方式,应为如果页面比较复杂的话你的XML文件会写得比较庞大,用第二种方式XML页面相对要简洁得多。

下面是我的XML源码:

<FrameLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
 <ListView
   android:id="@+id/journals_list_one"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:cacheColorHint="#FFFFFFFF"
   android:scrollbars="vertical"
   android:paddingTop="5dip"
   android:paddingBottom="5dip"
   android:paddingRight="5dip"
   android:background="#FFFFFFFF"
   android:listSelector="@drawable/list_item_selecter"
   />
 <ListView
   android:id="@+id/journals_list_two"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:cacheColorHint="#FFFFFFFF"
   android:scrollbars="vertical"
   android:paddingTop="5dip"
   android:paddingBottom="5dip"
   android:paddingRight="5dip"
   android:background="#FFFFFFFF"
   />
 <ListView
   android:id="@+id/journals_list_three"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:cacheColorHint="#FFFFFFFF"
   android:scrollbars="vertical"
   android:paddingTop="5dip"
   android:paddingBottom="5dip"
   android:paddingRight="5dip"
   android:background="#FFFFFFFF"
   />
 <ListView
   android:id="@+id/journals_list_end"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:cacheColorHint="#FFFFFFFF"
   android:scrollbars="vertical"
   android:paddingTop="5dip"
   android:paddingBottom="5dip"
   android:paddingRight="5dip"
   android:background="#FFFFFFFF"
   />
</FrameLayout>

这是JAVA源码:

private TabHost tabHost;
private ListView listView;
private MyListAdapter adapter;
private View footerView;
private List<Map<String, String>> data = new ArrayList<Map<String, String>>();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 tabHost = this.getTabHost(); 

 LayoutInflater.from(this).inflate(R.layout.main,
   tabHost.getTabContentView(), true); 

 tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("",
   getResources().getDrawable(R.drawable.home)).setContent(
   R.id.journals_list_one));
 tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("",
   getResources().getDrawable(R.drawable.activity)).setContent(
   R.id.journals_list_two));
 tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("",
   getResources().getDrawable(R.drawable.community)).setContent(
   R.id.journals_list_three));
 tabHost.addTab(tabHost.newTabSpec("tab4").setIndicator("",
   getResources().getDrawable(R.drawable.shop)).setContent(
   R.id.journals_list_end)); 

 tabHost.setCurrentTab(0);
 setContentView(tabHost);
 tabHost.setOnTabChangedListener(tabChangeListener); 

 showContent(); 

} 

 让自己的类继承TabActivity,然后通过调用getTabHost()方法得到tabhost对象,然后把自己写好的数据展示的布局文件加载到tabhost中,就可以实现了。最后是通过调用addTab()方法添加标签的相关属性(如:标签名称,标签图片,标签内容布局)。

而如果通过XML文件配置tabHost则需要注意的是,framelayout,tabwidge标签的id都必须引用系统的id(@android:id/tabcontent,@android:id/tabs),不然会报异常.在程序用使用findViewById()加载tabhost,然后调用tabhost.setup()方法初始化tabhost,后面的步骤则和上面一种一样,就不在说明。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

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

时间: 2025-01-29 19:26:18

Android Tabhost使用方法详解_Android的相关文章

Android组件必学之TabHost使用方法详解_Android

一.TabHost用法通常情况下我们会通过继承TabActivity,调用getTabHost()获取TabHost实例,下面是具体过程. TabHostActivity.java public class TabHostActivity extends TabActivity { private TabHost tabHost; private Intent certificateIntent; private Intent feeIntent; private Intent scoreInt

android TabLayout使用方法详解_Android

Google在2015的IO大会上,给我们带来了更加详细的Material Design设计规范,同时,也给我们带来了全新的Android Design Support Library,在这个support库里面,Google给我们提供了更加规范的MD设计风格的控件.最重要的是,Android Design Support Library的兼容性更广,直接可以向下兼容到Android 2.2. 这两天需要做一个仿京东详情的页面,上面的Tab切换,以前都是自己写Viewpager+fragment

Android Tabhost使用方法详解

Android 实现tab视图有2种方法,一种是在布局页面中定义<tabhost>标签,另一种就是继承tabactivity.但是我比较喜欢第二种方式,应为如果页面比较复杂的话你的XML文件会写得比较庞大,用第二种方式XML页面相对要简洁得多. 下面是我的XML源码: <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="ver

Android工程:引用另一个Android工程的方法详解_Android

现在已经有了一个Android工程A.我们想扩展A的功能,但是不想在A的基础上做开发,于是新建了另外一个Android工程B,想在B中引用A. 一个思路是把工程A做成纯Jar包,这样其他的工程就可以直接引用了. 但是,如果在工程A中用了R.java中的引用,则无法打成jar包了.原因是R.java是自动生成的,是动态的,每次编译都是不相同的.如果一定要做成jar包,就不能使用自动生成的R文件,用到资源时候就要写代码去获取. 另一个思路就是将工程A做成android library project

Android Notification 使用方法详解

Android Notification 使用方法详解 用TaskStackBuilder来获取PendingIntent处理点击跳转到别的Activity,首先是用一般的PendingIntent来进行跳转. mBuilder = new NotificationCompat.Builder(this).setContent(view) .setSmallIcon(R.drawable.icon).setTicker("新资讯") .setWhen(System.currentTim

Android HandlerThread使用方法详解

Android HandlerThread使用方法详解 HandlerThread 继承自Thread,内部封装了Looper. 首先Handler和HandlerThread的主要区别是:Handler与Activity在同一个线程中,HandlerThread与Activity不在同一个线程,而是别外新的线程中(Handler中不能做耗时的操作). 用法: import android.app.Activity; import android.os.Bundle; import androi

Android编程获取GPS数据的方法详解_Android

本文实例讲述了Android编程获取GPS数据的方法.分享给大家供大家参考,具体如下: GPS是Android系统中重要的组成部分,通过它可以衍生出众多的与位置相关的应用. Android的GPS有一个专门的管理类,称为LocationManager,所有的GPS定位服务都由其对象产生并进行控制. 首先需要明确的是,LocationManager类的对象获取并不是直接创建的,而是由系统提供的,具体来说,通过如下方法,为一个LocationManager对象建立一个对象引用: 复制代码 代码如下:

Android中gson、jsonobject解析JSON的方法详解_Android

JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. JSON对象: JSON中对象(Object)以"{"开始, 以"}"结束. 对象中的每一个item都是一个key-value对, 表现为"key:value"的形式, ke

Android中用Bmob实现短信验证码功能的方法详解_Android

 这篇文章主要介绍发送验证码和校验验证码的功能,用到一个第三方平台Bmob,那Bmob是什么呢?Bmob可以开发一个云存储的移动应用软件,他提供了大量的标准的API接口,根据需要接入相关服务,开发者可以更加专注于应用的开发,让产品交付更快速,验证码功能就是其中一个. 一.跟其他第三方一样,我们开发之前要做一些准备工作. 1.首先,去官网注册一个帐号:http://www.bmob.cn/: 2.然后就可以创建应用了:具体怎么做Bmob说得很清楚了(官方操作介绍),如果你不想看,我简单说一下:点击