ตัวอย่างการกำหนด Content ใน รูปแบบของ Activity ใน TabSpec : Android
 

Tutorial :: Android :: ตัวอย่างการใช้งาน :: ตัวอย่างการกำหนด Content ใน รูปแบบของ Activity ใน TabSpec

ในบทความนี้ จะแสดงให้เห็นถึงตัวอย่างการกำหนด Content ใน รูปแบบของ Activity ใน TabSpec โดยจะแสดงให้เห็นถึงการเขียนคำสั่งภายใน Class Activity, การเขียนคำสั่งภายในไฟล์ XML Layout, และการประกาศ Activity ไว้ภายในไฟล์ AndroidManifest.xml ดังนี้


การเขียนคำสั่งภายใน Class Activity

  • package nutt.me.activity;
  • import android.app.TabActivity;
  • import android.content.Intent;
  • import android.os.Bundle;
  • import android.widget.TabHost;
  • public class MainActivity extends TabActivity
  • {
  • public void onCreate ( Bundle savedInstanceState )
  • {
  • super.onCreate ( savedInstanceState );
  • this.setContentView ( R.layout.activity_main );
  • TabHost tabHost = this.getTabHost ( );
  • tabHost.setup ( );
  • Intent intent_analogClock = new Intent ( this, AnalogActivity.class );
  • Intent intent_digitalClock = new Intent ( this, DigitalActivity.class );
  • TabHost.TabSpec tab_analogClock = tabHost.newTabSpec ( "analogclock" );
  • tab_analogClock.setIndicator ( "Analog" );
  • tab_analogClock.setContent ( intent_analogClock );
  • tabHost.addTab ( tab_analogClock );
  • TabHost.TabSpec tab_digitalClock = tabHost.newTabSpec ( "digitalclock" );
  • tab_digitalClock.setIndicator ( "Digital" );
  • tab_digitalClock.setContent ( intent_digitalClock );
  • tabHost.addTab ( tab_digitalClock );
  • }
  • }
  • package nutt.me.activity;
  • import android.app.Activity;
  • import android.os.Bundle;
  • public class AnalogActivity extends Activity
  • {
  • public void onCreate ( Bundle savedInstanceState )
  • {
  • super.onCreate ( savedInstanceState );
  • this.setContentView ( R.layout.activity_analog );
  • }
  • }
  • package nutt.me.activity;
  • import android.app.Activity;
  • import android.os.Bundle;
  • public class DigitalActivity extends Activity
  • {
  • public void onCreate ( Bundle savedInstanceState )
  • {
  • super.onCreate ( savedInstanceState );
  • this.setContentView ( R.layout.activity_digital );
  • }
  • }

จากคำสั่งข้างต้น สามารถอธิบาย Class MainActivity ได้ว่า คำสั่ง TabHost.TabSpec tab_analogClock = tabHost.newTabSpec ( "analogclock" ); ในบรรทัดที่ 27 เป็นการสร้าง Object TabSpec โดยกำหนด Tag มีค่าข้อมูลคือ "analogclock" และคำสั่ง TabHost.TabSpec tab_digitalClock = tabHost.newTabSpec ( "digitalclock" ); ในบรรทัดที่ 36 เป็นการสร้าง Object TabSpec โดยกำหนด Tag มีค่าข้อมูลคือ "digitalclock" และคำสั่ง tab_analogClock.setContent ( intent_analogClock ); ในบรรทัดที่ 31 tab_digitalClock.setContent ( intent_digitalClock ); ในบรรทัดที่ 40 เป็นการกำหนด Content ในรูปแบบของ Activity ใน TabSpec

และสามารถอธิบาย Class AnalogActivity ได้ว่า คำสั่ง this.setContentView ( R.layout.activity_analog ); ในบรรทัดที่ 12 เป็นการกำหนด Layout ให้กับ Class AnalogActivity โดยการอ้างถึงไฟล์ activity_analog.xml ที่อยู่ใน Resource Folder ชื่อ "res/layout"

และสามารถอธิบาย Class DigitalActivity ได้ว่า คำสั่ง this.setContentView ( R.layout.activity_digital ); ในบรรทัดที่ 12 เป็นการกำหนด Layout ให้กับ Class DigitalActivity โดยการอ้างถึงไฟล์ activity_digital.xml ที่อยู่ใน Resource Folder ชื่อ "res/layout"


การเขียนคำสั่งภายในไฟล์ XML Layout

  • <!-- activity_main.xml -->
  • <?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_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>
  • <!-- activity_analog.xml -->
  • <?xml version="1.0" encoding="utf-8"?>
  • <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  • android:orientation="vertical"
  • android:layout_width="fill_parent"
  • android:layout_height="fill_parent" >
  • <TextView
  • android:layout_width="fill_parent"
  • android:layout_height="wrap_content"
  • android:gravity="center"
  • android:text="Welcome To AnalogActivity" />
  • <AnalogClock
  • android:layout_width="fill_parent"
  • android:layout_height="fill_parent" />
  • </LinearLayout>
  • <!-- activity_digital.xml -->
  • <?xml version="1.0" encoding="utf-8"?>
  • <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  • android:orientation="vertical"
  • android:layout_width="fill_parent"
  • android:layout_height="fill_parent" >
  • <TextView
  • android:layout_width="fill_parent"
  • android:layout_height="wrap_content"
  • android:gravity="center"
  • android:text="Welcome To DigitalActivity" />
  • <DigitalClock
  • android:layout_width="fill_parent"
  • android:layout_height="fill_parent" />
  • </LinearLayout>

จากคำสั่งข้างต้น สามารถอธิบายไฟล์ activity_main.xml ได้ว่า element <TabHost> มี id คือ tabhost (ประกาศไว้ในบรรทัดที่ 4) ซึ่งถูกใช้อ้างอิงใน Class Activity ข้างต้น

และสามารถอธิบายไฟล์ activity_analog.xml ได้ว่า ให้จัดเก็บไว้ใน Resource Folder ชื่อ "res/layout"

และสามารถอธิบายไฟล์ activity_digital.xml ได้ว่า ให้จัดเก็บไว้ใน Resource Folder ชื่อ "res/layout"


การประกาศ Activity ไว้ภายในไฟล์ AndroidManifest.xml

  • <?xml version="1.0" encoding="utf-8"?>
  • <manifest ... >
  • <application ... >
  • <activity android:name="nutt.me.activity.MainActivity" ... >
  • <intent-filter>
  • <action android:name="android.intent.action.MAIN" />
  • <category android:name="android.intent.category.LAUNCHER" />
  • </intent-filter>
  • </activity>
  • <activity android:name="nutt.me.activity.AnalogActivity" ... />
  • <activity android:name="nutt.me.activity.DigitalActivity" ... />
  • </application>
  • </manifest>

จากคำสั่งข้างต้น สามารถอธิบายได้ว่า มีการประกาศ Activity ชื่อ MainActivity ที่อยู่ใน Package nutt.me.activity ไว้ภายในไฟล์ AndroidManifest.xml ในบรรทัดที่ 4 และมีการประกาศ Activity ชื่อ AnalogActivity ที่อยู่ใน Package nutt.me.activity ไว้ภายในไฟล์ AndroidManifest.xml ในบรรทัดที่ 11 และมีการประกาศ Activity ชื่อ DigitalActivity ที่อยู่ใน Package nutt.me.activity ไว้ภายในไฟล์ AndroidManifest.xml ในบรรทัดที่ 12


หน้าจอแสดงผลของ ตัวอย่างการกำหนด Content ใน รูปแบบของ Activity ใน TabSpec จากการเขียนคำสั่งข้างต้น

หน้าจอแสดงผลของ ตัวอย่างการกำหนด Content ใน รูปแบบของ Activity ใน TabSpec

จากรูปแสดงหน้าจอของ MainActivity เมื่ออยู่ใน Tab "Analog" โดยภายใน Content ของ Tab ได้แสดง UI ของ Activity ที่ชื่อว่า AnalogActivity

หน้าจอแสดงผลของ ตัวอย่างการกำหนด Content ใน รูปแบบของ Activity ใน TabSpec

จากรูปแสดงหน้าจอของ MainActivity เมื่ออยู่ใน Tab "Digital" โดยภายใน Content ของ Tab ได้แสดง UI ของ Activity ที่ชื่อว่า DigitalActivity

Download This Example

0 Comment

  • Have no comment.

Comment Tutorial

 
 
 
 
Share This Topic Login with Facebook