您现在的位置: 主页 > 嵌入式相关 > 嵌入式安卓开发第三篇《高级控件之TabHost》
本文所属标签:
#嵌入式安卓开发#   
为本文创立个标签吧:

嵌入式安卓开发第三篇《高级控件之TabHost》

来源:网络整理 网络用户发布,如有版权联系网管删除 2018-07-10 

新手驿站第三篇《高级控件之TabHost》

1、在安卓应用程序中,普及应用的切换界面总少不了TabHost高级控件。主要因为TabHost使界面切换简洁简单和易操作,在手机应用程序当中,TabHost控件已经主导了界面切换的领域,看似很高大上,其实实现它并不难,今天我们将来玩转TabHost。

2、一般在应用程序当中的主界面总会有这样的选项:比如某信里面的:"某信","通讯录","发现","我",这几个。对应的这四个选项它与之对应的四个布局文件。首先我们来TabHost的组成部分:TabHost是整个Tab的容器,包含TabWidget和FrameLayout两个部分,TabWidget部分是Tab的表情,FrameLayoout部分是Tab的内容。

3、实现TabHost方式有两种方式:(1)继承TabActivity (2)继承Activity类。以下是代码部分,将会更深入讲解如何使用TabHost实现界面切换效果。(3)首先我们使用继承TabActivity的方式。第一个.java文件对应布局文件分别为:

MainActivity文件为(这是主文件,其余为Activity01-02-03-04都同理,在主文件下面是Activity01):

MainActivity文件:

import android.app.LocalActivityManager;

import android.app.TabActivity;

import android.content.Intent;

import android.os.Bundle;

import android.widget.RadioButton;

import android.widget.RadioGroup;

import android.widget.RadioGroup.OnCheckedChangeListener;

import android.widget.TabHost;

public class MainActivity extends TabActivity{

private TabHost tabhost;

private RadioGroup main_radiogroup; //定义组按钮控件

//定义某信控件,定义地址控件,定义朋友控件,定义设置控件

private RadioButton tab1, tab2, tab3,tab4;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.demo);

//获取相应控件按钮

main_radiogroup = (RadioGroup) findViewById(R.id.main_radiogroup);

tab1 = (RadioButton) findViewById(R.id.tab1);

tab2 = (RadioButton) findViewById(R.id.tab2);

tab3 = (RadioButton) findViewById(R.id.tab3);

tab4 = (RadioButton) findViewById(R.id.tab4);

//往TabWidget添加Tab

tabhost = getTabHost();

tabhost.addTab(tabhost.newTabSpec("tag1").setIndicator("0").setContent(new Intent(this,Activity1.class)));

tabhost.addTab(tabhost.newTabSpec("tag2").setIndicator("1").setContent(new Intent(this,Activity2.class)));

tabhost.addTab(tabhost.newTabSpec("tag3").setIndicator("2").setContent(new Intent(this,Activity3.class)));

tabhost.addTab(tabhost.newTabSpec("tag4").setIndicator("3").setContent(new Intent(this,Activity4.class)));

//设置监听事件

checkListener checkradio = new checkListener();

main_radiogroup.setOnCheckedChangeListener(checkradio);

//监听类

public class checkListener implements OnCheckedChangeListener{

public void onCheckedChanged(RadioGroup group, int checkedId) {

// TODO Auto-generated method stub

//setCurrentTab 通过标签索引设置当前显示的内容

//setCurrentTabByTag 通过标签名设置当前显示的内容

switch(checkedId){

case R.id.tab1:

tabhost.setCurrentTab(0);

//或

//tabhost.setCurrentTabByTag("tag1");

break;

case R.id.tab2:

tabhost.setCurrentTab(1);

case R.id.tab3:

tabhost.setCurrentTab(2);

case R.id.tab4:

tabhost.setCurrentTab(3);

Activity01文件:

package com.example.tab;

import android.app.Activity;

import android.view.View;

import android.widget.Button;

public class Activity1 extends Activity{

setContentView(R.layout.tab1_layout);

这是主文件对应的主布局为:

<?xml version="1.0" encoding="utf-8"?>

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:id="@android:id/tabhost"

>

<LinearLayout

android:orientation="vertical"

<FrameLayout

android:id="@android:id/tabcontent"

android:layout_height="0dp"

android:layout_weight="1"

android:background="@drawable/background2" >

</FrameLayout>

<!-- 隐藏TabWidget -->

<TabWidget

android:id="@android:id/tabs"

android:visibility="gone"

android:layout_height="wrap_content"

</TabWidget>

<!-- 视觉上,用单选按钮替代TabWidget -->

<RadioGroup

android:id="@+id/main_radiogroup"

android:layout_height="57dp"

android:layout_marginTop="0dp"

android:background="@drawable/tt"

android:orientation="horizontal"

android:paddingTop="8dp" >

<RadioButton

android:id="@+id/tab1"

android:layout_marginLeft="10dp"

android:checked="true"

android:drawableTop="@drawable/tab_weixin"

/>

android:id="@+id/tab2"

android:drawableTop="@drawable/tab_address"

android:id="@+id/tab3"

android:drawableTop="@drawable/tab_frd"

android:id="@+id/tab4"

android:layout_marginLeft="20dp"

android:drawableTop="@drawable/tab_set"

</RadioGroup>

</LinearLayout>

</TabHost>

其余的同理:如图,大家建立可以根据参考:



              查看评论 回复



嵌入式交流网主页 > 嵌入式相关 > 嵌入式安卓开发第三篇《高级控件之TabHost》
 文件 定义 控件

"嵌入式安卓开发第三篇《高级控件之TabHost》"的相关文章

网站地图

围观()