본문 바로가기

Android/TabHost example

TabHost example

Android TabHost example

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.ojtit.android.test.tab"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".TabHostActivity"
                  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=".FirstTab" /> 
      <activity android:name=".SecondTab" />

    </application>
    <uses-sdk android:minSdkVersion="7" />
</manifest>





TabHostActivity.java

package com.ojtit.android.test.tab;

import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;

 public class TabHostActivity extends TabActivity { 

     /** Called when the activity is first created. */

     @Override
     public void onCreate(Bundle savedInstanceState) { 
         super.onCreate(savedInstanceState); 
         setContentView(R.layout.main); 
   
         /** TabHost will have Tabs */
         TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost); 

         /** TabSpec used to create a new tab. 
          * By using TabSpec only we can able to setContent to the tab. 
          * By using TabSpec setIndicator() we can set name to tab. */

         /** tid1 is firstTabSpec Id. Its used to access outside. */
         TabSpec firstTabSpec = tabHost.newTabSpec("tid1"); 
         TabSpec secondTabSpec = tabHost.newTabSpec("tid1"); 

         /** TabSpec setIndicator() is used to set name for the tab. */
         /** TabSpec setContent() is used to set content for a particular tab. */

         firstTabSpec.setIndicator("First Tab Name").setContent(new Intent(this,FirstTab.class)); 
         secondTabSpec.setIndicator("Second Tab Name").setContent(new Intent(this,SecondTab.class)); 

         /** Add tabSpec to the TabHost to display. */
         tabHost.addTab(firstTabSpec); 
         tabHost.addTab(secondTabSpec); 
     } 
 }





main.xml

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

 <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:id="@android:id/tabhost"> 

     <LinearLayout android:id="@+id/LinearLayout01"
  android:orientation="vertical"
  android:layout_height="fill_parent"
  android:layout_width="fill_parent">
        
         <TabWidget android:id="@android:id/tabs"
             android:layout_height="wrap_content"
             android:layout_width="fill_parent">
         </TabWidget> 

         <FrameLayout android:id="@android:id/tabcontent"
             android:layout_height="fill_parent"
             android:layout_width="fill_parent">
         </FrameLayout> 

     </LinearLayout>
</TabHost>





FirstTab.java (Activity)

package com.ojtit.android.test.tab;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class FirstTab extends Activity { 

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 

        /* First Tab Content */
        TextView textView = new TextView(this); 
        textView.setText("First Tab"); 
        setContentView(textView); 
    } 
}



SecondTab.java(Activity)

package com.ojtit.android.test.tab;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class SecondTab extends Activity { 

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 

        /* Second Tab Content */
        TextView textView = new TextView(this); 
        textView.setText("Second Tab"); 
        setContentView(textView); 
    } 
}