Android控件之TabHost

2024-05-14 20:08
文章标签 android 控件 tabhost

本文主要是介绍Android控件之TabHost,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

建一个Android工程tabHost,包名com.test.www

man的布局文件,加了一些无关的TextView,可把这些TextView去掉

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <!-- 这个跟 text_id一样-->
    <TextView
            android:id="@+id/tip_id"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="tip"
            android:textColor="#850"
            android:gravity="center"
            android:layout_gravity="center"/>
    <TabHost
        android:id="@android:id/tabhost"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
        <!-- 这个是居正中显示 -->
        <TextView
            android:id="@+id/textRed_id"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="textRed"
            android:textColor="#f00"
            android:gravity="center"
            android:layout_gravity="center"/>
        <!-- 这个是靠边垂直居中 -->
        <TextView
            android:id="@+id/textGreen_id"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="textGreen"
            android:textColor="#0f0"
            android:layout_gravity="center"/>
        <!-- 这个是靠边垂直居中 在TabHost上面-->
        <TextView
            android:id="@+id/textBlue_id"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="textBlue"
            android:textColor="#00f"
            />
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >
            <TextView
            android:id="@+id/text_id"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="text"
            android:textColor="#f50"
            android:gravity="center"
            android:layout_gravity="center"/>
            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" >
            </TabWidget>
            
            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:padding="5dp" >
            </FrameLayout>
            
        </LinearLayout>
    </TabHost>

</LinearLayout>

下面的这个Activity只有一个TextView,一点击进入到TabActivity

package com.test.www;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

public class TableHostActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        setContentView(R.layout.main);
        TextView tv = new TextView(this);
        tv.setText("table host!");
        tv.setTextSize(30);
        tv.setOnClickListener(new OnClickListener() {
            
            public void onClick(View v) {
                // TODO Auto-generated method stub
                startActivity(new Intent(TableHostActivity.this, ActivitytableHost.class));
                finish();
            }
        });
        setContentView(tv);
    }
}

下面这个是TabActivity(选项卡的Activity继承此类),点击此类中的TextView到另一个界面显示选项卡的标题,

package com.test.www;

import com.test.www.R;

import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.util.Log;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;

public class ActivitytableHost extends TabActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Resources res = getResources();
        
        TabHost tabHost = getTabHost();
        //spec说明书,投机
        TabHost.TabSpec spec;
        
        Intent intent;
        //indicator指示器
        intent = new Intent(this,ActivityInside.class).putExtra("show", "tab 1");  //把值传给启动的界面
        //名字;要显示的字符;设置动画
        spec = tabHost.newTabSpec("a1").setIndicator("a1",res.getDrawable(R.drawable.c1))
                .setContent(intent);//设置一个Acitivity
        
        tabHost.addTab(spec);
        
        intent = new Intent(this,ActivityInside.class).putExtra("show", "tab 2");
        
        spec = tabHost.newTabSpec("a2").setIndicator("a2",res.getDrawable(R.drawable.c1))
                .setContent(intent);
        
        tabHost.addTab(spec);
        
        intent = new Intent(this,ActivityInside.class).putExtra("show", "tab 3");
        
        spec = tabHost.newTabSpec("a3").setIndicator("a3",res.getDrawable(R.drawable.c1))
                .setContent(intent); //选项卡的名字和图标
        
        tabHost.addTab(spec);
        
        intent = new Intent(this,ActivityInside.class).putExtra("show", "tab 4");
        
        spec = tabHost.newTabSpec("a4").setIndicator("a4",res.getDrawable(R.drawable.c1))
                .setContent(intent);
        
        tabHost.addTab(spec);
        
        tabHost.setCurrentTab(2); //给一个初始值,指向这个位置
        
        tabHost.setOnTabChangedListener(new OnTabChangeListener() {
            
            public void onTabChanged(String tabId) {
                // TODO Auto-generated method stub
               
            }
        });
    }
}
这个是显示TabHost选项卡的标签界面,点上面显示选项卡的标题,程序退出

package com.test.www;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

public class ActivityInside extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        TextView tv = new TextView(this);
        tv.setOnClickListener(new OnClickListener() {
            
            public void onClick(View v) {
                // TODO Auto-generated method stub
                finish();
            }
        });
        tv.setText(getIntent().getStringExtra("show"));
        setContentView(tv);
    }
}

配置文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.test.www"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="4" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".TableHostActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="ActivitytableHost"></activity>
        <activity android:name="ActivityInside"></activity>
    </application>

</manifest>
运行效果


这篇关于Android控件之TabHost的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/989726

相关文章

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

WinForms中主要控件的详细使用教程

《WinForms中主要控件的详细使用教程》WinForms(WindowsForms)是Microsoft提供的用于构建Windows桌面应用程序的框架,它提供了丰富的控件集合,可以满足各种UI设计... 目录一、基础控件1. Button (按钮)2. Label (标签)3. TextBox (文本框

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

Android 实现一个隐私弹窗功能

《Android实现一个隐私弹窗功能》:本文主要介绍Android实现一个隐私弹窗功能,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 效果图如下:1. 设置同意、退出、点击用户协议、点击隐私协议的函数参数2. 《用户协议》、《隐私政策》设置成可点击的,且颜色要区分出来res/l

Android实现一键录屏功能(附源码)

《Android实现一键录屏功能(附源码)》在Android5.0及以上版本,系统提供了MediaProjectionAPI,允许应用在用户授权下录制屏幕内容并输出到视频文件,所以本文将基于此实现一个... 目录一、项目介绍二、相关技术与原理三、系统权限与用户授权四、项目架构与流程五、环境配置与依赖六、完整

Android 12解决push framework.jar无法开机的方法小结

《Android12解决pushframework.jar无法开机的方法小结》:本文主要介绍在Android12中解决pushframework.jar无法开机的方法,包括编译指令、框架层和s... 目录1. android 编译指令1.1 framework层的编译指令1.2 替换framework.ja

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

Android实现定时任务的几种方式汇总(附源码)

《Android实现定时任务的几种方式汇总(附源码)》在Android应用中,定时任务(ScheduledTask)的需求几乎无处不在:从定时刷新数据、定时备份、定时推送通知,到夜间静默下载、循环执行... 目录一、项目介绍1. 背景与意义二、相关基础知识与系统约束三、方案一:Handler.postDel

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE