Android入门之TabHost与TabWidget实例解析

本文实例介绍的是Android的Tab控件,Tab控件可以达到分页的效果,让一个屏幕的内容尽量丰富,当然也会增加开发的复杂程度,在有必要的时候再使用。Android的Tab控件使用起来有点奇怪,必须包含和按照以下的顺序:

TabHost控件->TabWidget(必须命名为tabs)->FrameLayout(必须命名为tabcontent)。

先来贴出本例运行的截图:

main.xml的源码如下:

<?xml version="1.0" encoding="utf-8"?>
<TabHost android:layout_width="fill_parent"
  android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/TabHost1">
  <TabWidget android:id="@android:id/tabs"
    android:layout_height="wrap_content" android:layout_width="fill_parent">
</TabWidget>
  <FrameLayout android:id="@android:id/tabcontent"
    android:paddingTop="65px" android:layout_width="fill_parent" android:layout_height="fill_parent">
    <LinearLayout android:layout_height="wrap_content" android:id="@+id/Tab1" android:orientation="vertical" android:layout_width="fill_parent">
      <EditText android:layout_height="wrap_content" android:id="@+id/edtTab1" android:layout_width="fill_parent"></EditText>
      <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btnTab1" android:text="Tab1"></Button>
    </LinearLayout>
    <LinearLayout android:layout_height="wrap_content" android:id="@+id/Tab2" android:layout_width="fill_parent" android:orientation="horizontal">
      <EditText android:layout_height="wrap_content" android:id="@+id/edtTab2" android:layout_width="wrap_content" android:layout_weight="300"></EditText>
      <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btnTab2" android:text="Tab2"></Button></LinearLayout>
  </FrameLayout>
</TabHost>

java程序源码如下:

package com.testTab;
import android.app.TabActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
public class testTab extends TabActivity {//基于TabActivity构建

 Button btnTab1,btnTab2;
 EditText edtTab1,edtTab2;
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    TabHost tabs = getTabHost();
    //设置Tab1
    TabSpec tab1 = tabs.newTabSpec("tab1");
    tab1.setIndicator("tab1");   // 设置tab1的名称
    tab1.setContent(R.id.Tab1);  // 关联控件
    tabs.addTab(tab1);        // 添加tab1

    btnTab1=(Button)this.findViewById(R.id.btnTab1);
    edtTab1=(EditText)this.findViewById(R.id.edtTab1);
    btnTab1.setOnClickListener(new ClickEvent());

    //设置Tab2
    TabSpec tab2 = tabs.newTabSpec("tab2");
    tab2.setIndicator("tab2");
    tab2.setContent(R.id.Tab2);
    tabs.addTab(tab2);        

    btnTab2=(Button)this.findViewById(R.id.btnTab2);
    edtTab2=(EditText)this.findViewById(R.id.edtTab2);
    btnTab2.setOnClickListener(new ClickEvent());

    tabs.setCurrentTab(0);
  }

  class ClickEvent implements View.OnClickListener {
 @Override
 public void onClick(View v) {
  if(v==btnTab1)
  {
  edtTab1.setText("tab1");
  }
  else if(v==btnTab2)
  {
  edtTab2.setText("tab2");
  }
 }

  }
}
(0)

相关推荐

  • android 选项卡(TabHost)如何放置在屏幕的底部

    今天写Tab的时候由于TAB的跳转问题去查资料,倒反而发现更有趣的问题,就是如何将TAB放置在屏幕的底端. 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" a

  • Android开发笔记 TableLayout常用的属性介绍

    TableLayout经常用到的属性有: android:collapseColumns:以第0行为序,隐藏指定的列: android:collapseColumns该属性为空时,效果如下图: 把android:collapseColumns=0,2-------------->意思是把第0和第2列去掉,如下图: android:shrinkColumns:以第0行为序,自动延伸指定的列填充可用部分: 当LayoutRow里面的控件还没有布满布局时,shrinkColumns不起作用,如下图:

  • Android中实现可滑动的Tab的3种方式

    1. 第一种,使用 TabHost + ViewPager 实现该方法会有一个Bug,当设置tabHost.setCurrentTab()为0时,ViewPager不显示(准确的说是加载),只有点击其他任意一个tab后才会加载. 有解的同学吼一声~~~~~~~ Activity: 复制代码 代码如下: package com.swordy.demo.android.fragment; import java.util.Random; import android.os.Bundle;import

  • Android TabWidget切换卡的实现应用

    TabWidget类似于Android 中查看电话薄的界面,通过多个标签切换显示不同内容.要实现这一效果,首先要了解TabHost,它是一个用来存放多个Tab标签的容器.每一个Tab都可以对应自己的布局,比如,电话薄中的Tab布局就是一个List的线性布局了. 要使用TabHost,首先需要通过getTabHost方法来获取TabHost的对象,然后通过addTab方法来向TabHost中添加 Tab.当然每个Tab在切换时都会产生一个事件,要捕捉这个事件需要设置TabActivity的事件监听

  • Android Tab 控件详解及实例

    Android Tab 控件详解及实例 在桌面应用中Tab控件使用得非常普遍,那么我们经常在Android中也见到以Tab进行布局的客户端.那么Android中的Tab是如何使用的呢? 1.Activity package com.wicresoft.activity; import com.wicresoft.myandroid.R; import android.app.TabActivity; import android.os.Bundle; import android.util.Lo

  • android中TabHost的图标(48×48)和文字叠加解决方法

    开发过程中,有时候图标稍微大点,比如48×48的时候,文字就会和图标叠加起来,解决方法如下: 复制代码 代码如下: TabWidget tw = tabHost.getTabWidget(); for (int i = 0; i < tw.getChildCount(); i++) {     TextView tv=(TextView)tw.getChildAt(i).findViewById(android.R.id.title);     ImageView iv=(ImageView)t

  • Android TabLayout(选项卡布局)简单用法实例分析

    本文实例讲述了Android TabLayout(选项卡布局)简单用法.分享给大家供大家参考,具体如下: 我们在应用viewpager的时候,经常会使用TabPageIndicator来与其配合.达到很漂亮的效果.但是TabPageIndicator是第三方的,而且比较老了,当然了现在很多大神都已经开始自己写TabPageIndicator来满足自己的需求,在2015年的google大会上,google发布了新的Android Support Design库,里面包含了几个新的控件,其中就有一个

  • android TabHost(选项卡)的使用方法

    首先,定义TabHost的布局文件: 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@android:id/tabhost" android:layout_width="fill_p

  • Android入门之TabHost与TabWidget实例解析

    本文实例介绍的是Android的Tab控件,Tab控件可以达到分页的效果,让一个屏幕的内容尽量丰富,当然也会增加开发的复杂程度,在有必要的时候再使用.Android的Tab控件使用起来有点奇怪,必须包含和按照以下的顺序: TabHost控件->TabWidget(必须命名为tabs)->FrameLayout(必须命名为tabcontent). 先来贴出本例运行的截图: main.xml的源码如下: <?xml version="1.0" encoding="

  • Android入门之Gallery+ImageSwitcher用法实例解析

    继上一篇介绍了如何使用Gallery控件之后,本文就来讲一下Gallery 与ImageSwitcher的结合使用.本文所述实例代码将实现一个简单的浏览图片的功能. 先贴出程序运行截图如下: 除了Gallery可以拖拉切换图片,我在ImageSwitcher控件加入了setOnTouchListener事件实现,使得ImageSwitcher也可以在拖拉中切换图片.本例子依然使用JAVA的反射机制来自动读取资源中的图片. main.xml的源码如下: <?xml version="1.0&

  • Android评分控件RatingBar使用实例解析

    无论游戏,应用,网站,都少不了评分控件.在Android SDK 中提供了 RatingBar控件来实现相应的工作. <RatingBar/>标签有几个常用评分相关属性 android:numStars,指定评分五角星数. android:rating,指定当前分数 android:stepSize, 指定分数增量 <RatingBar/>还有3种 常用的style属性 默认style 就是ratingBarStyle style ratingBarStyleIndicator 不

  • Android开发之InetAddress基础入门简介与源码实例

    最近在学习soket编程中,看到有需要获取到IP地址之类的需求,所以就去看了下如何获取到主机名的IP地址. 其实就是需要用到一个类InetAddress.他是在java.net包下面. InetAddress类的对象用于IP地址和域名,该类提供以下方法: getByName(String s):获得一个InetAddress 类的对象,该对象中含有主机的IP地址和域名,该对象用如下格式表示它包含的信息:www.sina.com.cn/202.108.37.40: String getHostNa

  • Android入门之LinearLayout、AbsoluteLayout的用法实例讲解

    本文实例介绍了Android中LinearLayout.AbsoluteLayout的用法,希望能对于初学Android的朋友起到一点帮助作用.具体内容如下: Android 的UI 布局都以Layout 作为容器,并且在上面按照规定排列控件,这方面跟JAVA 的Swing 和LWUIT 很像.控件跟Layout 有很多属性是一样的,可以在Properties 里面修改,跟.NET/Delphi 等RAD 类似,其中最常用的属性有以下这些: id="@+id/edtInput",ID

  • Android程序开发之自定义设置TabHost,TabWidget样式

    先看效果: 京东商城底部菜单栏 新浪微博底部菜单栏 本次学习效果图: 第一,主布局文件(启动页main.xml,位于res/layout目录下)代码 <?xml version="." encoding="utf-"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_paren

  • Android 媒体开发之MediaPlayer状态机接口方法实例解析

    一. MediaPlayer 状态机 介绍 Android MediaPlayer 状态即图例 : 1. Idle (闲置) 状态 和 End (结束) 状态 MediaPlayer 对象声明周期 : 从 Idle 到 End 状态就是 MediaPlayer 整个生命周期; -- 生命周期开始 : 进入 Idle (闲置) 状态; -- 生命周期结束 : 进入 End (结束) 状态; Idle 和 End 状态转换 : -- 进入 Idle 状态 : MediaPlayer 刚被创建 new

  • Android逆向入门之常见Davlik字节码解析

    目录 破解流程 相关知识 寄存器 复杂指令集和精简指令集 jvm和davlik的一些区别 常见Davlik字节码解释 破解程序 分析修改smail文件 重新签名 破解流程 破解Android程序流程:反编译->分析–>修改–>回编译–>签名,这些都是在命令行中操作,当然也有集成了这些操作的工具: macos:Android-Crack-Tool Windows:Android Killer 相关知识 寄存器 这里解释下寄存器的概念,寄存器是用来存储 寄存器是CPU内部用来存放数据的

  • 实例解析Android中使用Pull解析器解析XML的方法

    1.Pull简介 Pull解析器是Android系统内置的的,Pull解析器与SAX解析器类似,他提供了类似的事件,如开始元素和介绍元素的事件,使用parser.next()可以进入下一个元素并触发相应的事件,然后进行相应的处理,当元素开始解析时,调用perser.nextText()方法就可以获取到下一个Text类型元素的值. 2.pull特点 (1)简单的结构,一个接口,一个另外,一个工厂组成了Pull解析器 (2)简单易用,Pull解析器只有一个重要的方法next(),他被用来检索下一个事

  • Android开发之TabHost选项卡及相关疑难解决方法

    本文实例分析了Android开发之TabHost选项卡及相关疑难解决方法.分享给大家供大家参考,具体如下: 前言: 虽然现在谷歌已经不推荐使用TabHost,但是初学者还是很有必要接触下这一成金的经典的,本文将介绍纤细介绍这一空间的使用,以及大家可能遇到的问题.注:文末给出完整实现代码 三个问题: 1. 无法显示TabHost 2. 添加图片 + 文字 无法同时 3. 说在最后:点击事件 4. 底部导航无法实现 现在 从问题出发: 问题一:无法显示 TabHost 很多人调用TabHost的方法

随机推荐