Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > Mobile > Android Tutorials - สอนเขียน Android App ฟรี เขียนโปรแกรมแอนดรอยด์บน SmartPhone / Tablets > Android กับ setContentView() ควบคุมการแสดงผล XML Layout ของแต่ล่ะ Activity



Clound SSD Virtual Server

Android กับ setContentView() ควบคุมการแสดงผล XML Layout ของแต่ล่ะ Activity

Android กับ setContentView() ควบคุมการแสดงผล XML Layout การใช้ setContentView() มาควบคุมการแสดงผลของแต่ล่ะ Layout เพื่อเลือกไฟล์ที่อยู่ในรูปแบบของ XML ต่าง ๆ มาแสดงผลใน Activity นั้นเป็นทางเลือกในอันดับต้น ๆ ที่ใช้ในการเขียนโปรแกรมบน Android เหตุผลเพราะสามารถเขียนไฟล์ที่เป็น Java Class ที่อยู่ใน Class เดียวกับ แต่จะสามารถเรียกใช้ XML Layout ได้หลายตัว โดยไม่ต้องสร้าง Class เพิ่มขึ้นมา แต่การใช้งาน setContentView() คือข้อจำกัดในการแสดงผล Layout นั้น จะสามารถแสดงผลได้ครั้งล่ะ Layout เท่านั้น โดยถ้ามีการเรียก setContentView() แบบซ้ำซ้อน ใน Java Class จะเลือกแสดงผล Layout ที่ถูกเรียกใช้ล่าสุด

Flow การทำงานของ setContentView()

Android Intent setContentView


จากรูปจะเห็นว่า Java Class ที่มีอยู่แต่ตัวเดียว แต่จะสามารถเรียก XML layout ได้จาก layout ต่าง ๆ โดยจะสามารถเลือก setContentView() ได้ครั้งล่ะ Layout


Example การใช้ setContentView() เพื่อเรียก Layout แบบง่าย ๆ

โคงสร้างของไฟล์

Android Intent setContentView

ในขั้นต้นจะมีไฟล์ที่เป็น MainActivity.java และ activity_main.xml ซึ่งเป็น Activity หลัก

เราจะลองทดสอบสร้าง XML Layout ขึ้นมาอีก 2 ตัวคือ
- activity_form2.xml
- activity_form3.xml

การเพิ่ม XML Layout
คลิกขวาในตำแหน่งของ Layout ที่ต้องการ

Android Intent setContentView

เลือก New -> Android XML Form

Android Intent setContentView

โครงสร้างไฟล์ที่ได้ ตามภาพประกอบ








รายละเอียดของไฟล์

Android Intent setContentView

activity_main.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" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"
        android:text="Current Show Form 1"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="62dp"
        android:text="Show Form 2" />

</RelativeLayout>



Android Intent setContentView

activity_form2.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"
        android:text="Current Show Form 2"
        android:textAppearance="?android:attr/textAppearanceLarge" />
    
     <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView2"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="62dp"
        android:text="Show Form 3" />

</RelativeLayout>



Android Intent setContentView

activity_form3.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"
        android:text="Current Show Form 3"
        android:textAppearance="?android:attr/textAppearanceLarge" />
    
   	<Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView3"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="62dp"
        android:text="Back to Form 1" />

</RelativeLayout>


MainActivity.java
package com.myapp;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.app.Activity;

public class MainActivity extends Activity {

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		// Default Show ShowConventView1()
		ShowConventView1();
        
	}
	
	// Show activity_main.xml
	public void ShowConventView1()
	{
		setContentView(R.layout.activity_main);

		// Button1
        final Button btn1 = (Button) findViewById(R.id.button1);
        // Perform action on click
        btn1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
            	ShowConventView2();
            }
        });
	}
	
	// Show activity_form2.xml
	public void ShowConventView2()
	{
     	setContentView(R.layout.activity_form2); // Show activity_form2
     	
     	// Button2
        final Button btn2 = (Button) findViewById(R.id.button2);
        // Perform action on click
        btn2.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
            	ShowConventView3();
            }
        });
	}
	
	// Show activity_form3.xml
	public void ShowConventView3()
	{
     	setContentView(R.layout.activity_form3); // Show activity_form3
     	
     	// Button3
        final Button btn3 = (Button) findViewById(R.id.button3);
        // Perform action on click
        btn3.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
            	ShowConventView1();
            }
        });
	}

}


จาก Code ที่เป็น Java Class จะเห็นค่าหลังจาก onCreate() จะมีการเรียก method ShowConventView1(); เพื่อแสดง layout ของ activity_main

		setContentView(R.layout.activity_main);


หลังจากนั้นจะเป็นการใช้ปุ่ม Button เพื่อควบคุมการแสดงผลในแต่ล่ะ Layout

Screenshot

Android Intent setContentView

แสดง activity_main.xml เมื่อคลิกที่ Button จะไปยัง activity_form2.xml

Android Intent setContentView

แสดง activity_form2.xml เมื่อคลิกที่ Button จะไปยัง activity_form3.xml

Android Intent setContentView

แสดง activity_form3.xml เมื่อคลิกที่ Button จะไปยัง activity_main.xml









สำหรับตัวอย่างการใช้งาน Android กับ Intent เพื่อควบคุม Layout และ Class Activity สามารถอ่านได้ที่บทความนี้



   
Share


ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท


ลองใช้ค้นหาข้อมูล


   


Bookmark.   
       
  By : ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ)
  Score Rating :  
  Create/Update Date : 2012-07-22 08:54:58 / 2017-03-26 20:24:54
  Download : No files
 Sponsored Links / Related

 
เรียกใช้งาน string.xml บน android ไฟล์จัดเก็บค่า string / array ตัวแปรในรูปแบบต่าง ๆ
Rating :

 
Android กับ Intent ควบคุมการแสดงและซ่อน (Show/Hide) ของ Activity form ต่าง ๆ
Rating :

 
Android การใส่ Effect ให้กับ Intent ใน Activity ระหว่างการเปลี่ยน Activity
Rating :

 
Android Rotate Switching Portrait and Landscape - Emulator (มุมมองในแนวตั้งและแนวนอน)
Rating :

 
Android Enabled/Disabled Fix Portrait or Landscape Orientation Mode
Rating :

 
Android Change Activity Layout when Switching Portrait and Landscape
Rating :

 
Android Display FullScreen / No Title Bar
Rating :


ThaiCreate.Com Forum


Comunity Forum Free Web Script
Jobs Freelance Free Uploads
Free Web Hosting Free Tools

สอน PHP ผ่าน Youtube ฟรี
สอน Android การเขียนโปรแกรม Android
สอน Windows Phone การเขียนโปรแกรม Windows Phone 7 และ 8
สอน iOS การเขียนโปรแกรม iPhone, iPad
สอน Java การเขียนโปรแกรม ภาษา Java
สอน Java GUI การเขียนโปรแกรม ภาษา Java GUI
สอน JSP การเขียนโปรแกรม ภาษา Java
สอน jQuery การเขียนโปรแกรม ภาษา jQuery
สอน .Net การเขียนโปรแกรม ภาษา .Net
Free Tutorial
สอน Google Maps Api
สอน Windows Service
สอน Entity Framework
สอน Android
สอน Java เขียน Java
Java GUI Swing
สอน JSP (Web App)
iOS (iPhone,iPad)
Windows Phone
Windows Azure
Windows Store
Laravel Framework
Yii PHP Framework
สอน jQuery
สอน jQuery กับ Ajax
สอน PHP OOP (Vdo)
Ajax Tutorials
SQL Tutorials
สอน SQL (Part 2)
JavaScript Tutorial
Javascript Tips
VBScript Tutorial
VBScript Validation
Microsoft Access
MySQL Tutorials
-- Stored Procedure
MariaDB Database
SQL Server Tutorial
SQL Server 2005
SQL Server 2008
SQL Server 2012
-- Stored Procedure
Oracle Database
-- Stored Procedure
SVN (Subversion)
แนวทางการทำ SEO
ปรับแต่งเว็บให้โหลดเร็ว


Hit Link
   







Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่