zoukankan      html  css  js  c++  java
  • TabHost用法

    tabhost用两种方法

    方法一:Activity继承TabActivity后用getTabHost()方法来获取tabhost(前提:Activity的setContentView要删除,这样布局才能用TabActivity的默认布局,这样TabActivity的setup方法才不会出错),获取完后再对tabhost布局进行设置

    方法二:用findViewById方法来获取tabhost,只是findViewById里的布局xml要符合一以下的格式

    <?xml version="1.0" encoding="utf-8"?>  
    <TabHost xmlns:android="http://schemas.android.com/apk/res/android"  
        android:id="@+id/tabhost"  
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent">  
        <LinearLayout  
            android:orientation="vertical"  
            android:layout_width="fill_parent"  
            android:layout_height="fill_parent">  
            <TabWidget  
                android:id="@android:id/tabs"  
                android:layout_width="fill_parent"  
                android:layout_height="wrap_content" />  
            <FrameLayout  
                android:id="@android:id/tabcontent"  
                android:layout_width="fill_parent"  
                android:layout_height="fill_parent">  
                 
            </FrameLayout>  
        </LinearLayout>  
    </TabHost>  
    View Code

    然后调用tabhost.setup()方法,再调用addTab()方法

    代码如下:

    MyTabActivity

    package com.my.studyofandroid;
    
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.text.AndroidCharacter;
    import android.view.LayoutInflater;
    import android.view.Menu;
    import android.widget.TabHost;
    ///tabhost方法一:继承TabActivity类,用getTabHost()方法来建tabhost。这时setContentView()要去掉,不限制xml布局文件里是否要有Tabhost,TabWidget,FrameLayout等 内容并且格式要固定
    @SuppressWarnings("deprecation")
    public class MyTabActivity extends android.app.TabActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            ///tabhost方法一
            super.onCreate(savedInstanceState);
        //    setContentView(R.layout.activity_mytab);///这句话要删除不然会报错:Your TabHost must have a TabWidget whose id attribute is 'android.R.id.tabs
            ///用TabActivity的方法获取tabhost对象
            TabHost tabhost=getTabHost();
            //设置使用tabhost的布局
            LayoutInflater.from(this).inflate(R.layout.activity_mytab, tabhost.getTabContentView(),true);
            ///加tab,tab里的布局是由另一个xml决定
            tabhost.addTab(tabhost.newTabSpec("tab1").setContent(R.id.tab_1).setIndicator("选择卡1"));
            tabhost.addTab(tabhost.newTabSpec("tab2").setContent(R.id.tab_2).setIndicator("选择卡2"));
            
            
            /*
            ///tabhost方法二:如果用方法二,可以不继承TabActivity了,因为用不到getTabHost方法
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_mytab);///activity_mytab.xml里的格式见最下面代码
                
            TabHost tabHost=(TabHost)findViewById(R.id.tabhost);///获取TabHost 通过findviewbyid
            tabhost.setup();///在加tab到tabhost之前要执行此方法,也就是说通过findviewbyid方法获得tabhost必须setup(), 而通过getTabHost则不用。查看setup源码就知道为什么TabWidget和FrameLayout必须用系统自定义的id
            ///加tab
            tabhost.addTab(tabhost.newTabSpec("tab1").setContent(R.id.tab_1).setIndicator("选择卡1"));
            tabhost.addTab(tabhost.newTabSpec("tab2").setContent(R.id.tab_2).setIndicator("选择卡2"));
            */
        }
    
        
        
        
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.tab, menu);
            return true;
        }
    
    }
    
    
    ///如果用方法二,activity_mytab。xml的格式必须如下:当然要包含Tabhost,TabWidget,FrameLayout,着3个标签:
    /*
    <?xml version="1.0" encoding="utf-8"?>  
    <TabHost xmlns:android="http://schemas.android.com/apk/res/android"  
        android:id="@+id/tabhost"  ///id必须为tabhost
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent">  
        <LinearLayout  
            android:orientation="vertical"  
            android:layout_width="fill_parent"  
            android:layout_height="fill_parent">  
            <TabWidget  
                android:id="@android:id/tabs"  ///id必须为tabs
                android:layout_width="fill_parent"  
                android:layout_height="wrap_content" />  
            <FrameLayout  
                android:id="@android:id/tabcontent"  ///id必须为tabcontent
                android:layout_width="fill_parent"  
                android:layout_height="fill_parent">  
            ///下面是两个tab布局   
                
        <LinearLayout
            android:id="@+id/tab_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/textView1"
            android:layout_marginTop="72dp"
            android:layout_toRightOf="@+id/textView1"
            android:orientation="vertical" >
    
            <Button
                android:id="@+id/button1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button" />
    
            <Button
                android:id="@+id/button2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button" />
    
        </LinearLayout>
    
        <LinearLayout
            android:id="@+id/tab_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/tab_1"
            android:layout_below="@+id/tab_1"
            android:layout_marginTop="116dp"
            android:orientation="vertical" >
    
            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="TextView" />
    
            <TextView
                android:id="@+id/textView3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="TextView" />
    
        </LinearLayout>
        
                 
            </FrameLayout>  
        </LinearLayout>  
    </TabHost> 
    
    */
    View Code

    activity_mytab.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MyTabActivity" >
    
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hello_world" />
    
        <LinearLayout
            android:id="@+id/tab_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/textView1"
            android:layout_marginTop="72dp"
            android:layout_toRightOf="@+id/textView1"
            android:orientation="vertical" >
    
            <Button
                android:id="@+id/button1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button" />
    
            <Button
                android:id="@+id/button2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button" />
    
        </LinearLayout>
    
        <LinearLayout
            android:id="@+id/tab_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/tab_1"
            android:layout_below="@+id/tab_1"
            android:layout_marginTop="116dp"
            android:orientation="vertical" >
    
            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="TextView" />
    
            <TextView
                android:id="@+id/textView3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="TextView" />
    
        </LinearLayout>
    
    </RelativeLayout>
    View Code
  • 相关阅读:
    理解 QEMU/KVM 和 Ceph(2):QEMU 的 RBD 块驱动(block driver)
    Neutron VxLAN + Linux Bridge 环境中的网络 MTU
    理解 QEMU/KVM 和 Ceph(1):QEMU-KVM 和 Ceph RBD 的 缓存机制总结
    [译] 企业级 OpenStack 的六大需求(第 3 部分):弹性架构、全球交付
    [译] 企业级 OpenStack 的六大需求(第 2 部分):开放架构和混合云兼容
    [译] 企业级 OpenStack 的六大需求(第 1 部分):API 高可用、管理和安全
    Javascript中的Array(数组) 、{}(映射) 与JSON解析
    HTML中显示特殊字符,如尖括号 “<”,">"等等
    Ubuntu 12.04 安装配置 Apache2
    Python中函数的参数传递与可变长参数
  • 原文地址:https://www.cnblogs.com/shengyu-kmust/p/4384369.html
Copyright © 2011-2022 走看看