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,027

HOME > Mobile > Android Tutorials - สอนเขียน Android App ฟรี เขียนโปรแกรมแอนดรอยด์บน SmartPhone / Tablets > พื้นฐานการเขียน Android กับโปรแกรมภาษา Java Syntax และการใช้งาน Eclipse เบื้องต้น



Clound SSD Virtual Server

พื้นฐานการเขียน Android กับโปรแกรมภาษา Java Syntax และการใช้งาน Eclipse เบื้องต้น

Android กับการเขียน Java Syntax บนโปรแกรม Eclipse ในการเขียนโปรแกรมบน Android นั้นจะใช้ภาษา Java Platform ในการพัฒนาและเขียนคำสั่งให้โปรแกรมทำงาน รูปในการเขียนเป็น OOP ทั้งหมด และ API Library ต่าง ๆ ที่อยู่ใน Android Framework ที่เราสามารถเรียกใช้งานได้ ก็ถูกพัฒนาด้วยภาษา Java เช่นเดียวกัน และจะมีให้เลือกเรียกใช้งานหลายตัวมาก แบ่งแยกตามวัตถุประสงค์ต่าง ๆ (เราสามารถพัฒนา Library ขึ้นมาใช้เองก็ได้ หรือจะดาวน์โหลด Library จากแหล่งต่าง ๆ ที่มีทั้งฟรีและเสียเงิน) โดยจะมีการแยก Package หรือ API Class Library ต่าง ๆ ถูกแยกจัดเก็บไว้ในแต่ะล่ะหมวดหมู่ เพื่อความสะดวกและง่ายต่อการนำมาใช้ เช่น TextView จัดการเกี่ยวกับข้อความหรือ Text , Button จัดการเกี่ยวกับปุ่ม Button หรืออื่น ๆ ที่ถูกจัดแยกไว้ตาม Class ที่อยู่ภายใต้ Widgets Class และถ้าจะใช้งานตัวไหนก็ค่อยทำการ Import เข้ามาใน Class ของเรา ในการขียน Android ถ้ามีพื้นฐานการเขียน Java หรือ .NET Framework มาแล้ว ก็จะสามารถเข้าใจได้เร็วขึ้น

Android Basic Java Syntax


ในโครงสร้างการเขียนโปรแกรม Android พื้นฐานทั่วไปจะเป็นการทำงานของ XML Layout ซึ่งจะผสานการทำงานร่วมกับ XML และ Java โดย XML จะถูกออกแบบให้เป็นส่วนที่เป็น GUI และใช้ XML Syntax ในการวาง Layout ต่าง ๆ ของ Widgets หรือ Element ต่าง ๆ ส่วนในภาษา Java จะเป็นชุดคำสั่งที่ควบควบคุมการทำงานของโปรแกรม และ หน้าจอที่แสดงผลที่อยู่ในรูปแบบของ XML Layout

ตัวอย่างการ XML ซึ่งเป็น Layout ของ Widgets

<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="78dp"
    android:text="TextView" />


ส่วนที่เป็น Java จะทำงานควบคุม XML Layout นี้

ตัวอย่างการ import Library ต่าง ๆ

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


ตัวอย่างการ import ตัว API Library ต่าง ๆ เข้ามาใน Project กรณีที่มี Widgets หรือ Element หลายรายการ ก็จะต้อง รmport เข้ามาทั้งหมดด้วยเช่นเดียวกัน

ใน Framework ของ Android จะมีการแยก Library ของแต่ล่ะตัวอย่างชัดเช่น เช่นถ้าต้องการใช้ TextView ใน Project หรือ Code จะต้องทำการ import android.widget.TextView; เข้ามาใน Project ด้วย

import android.widget.TextView;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final TextView editT1 = (TextView)findViewById(R.id.editText1);

        
    }
}


คำอธิบาย
จากตัวอย่างจะมีการเรียกใช้ TextView เฉพาะฉะนั้นจะต้องทำการ import android.widget.TextView; เข้ามาด้วยเช่นเดียวกัน



เบื้องต้นการเขียน Android บนโปรแกรม Eclipse

ทดสอบสร้างโปรแกรม Android Project ขึ้นมาบน Eclipse

สร้างโปรเจค Android Create New Project บนโปรแกรม Eclipse (Android Project)


หน้าหลักของ Project

Android Basic Java Syntax

หน้าจอหลักที่ได้หลังจากการสร้างโปรเจค Android บน บน Eclipse (สามารถอ่านทำความเข้าใจได้จากลิ้งค์ที่ได้แนะนำไว้ในก่อนหน้านี้)

Android Basic Java Syntax

สิ่งที่เราจะต้องสนใจในขณะนี้มีอยู่เพียง 2 ไฟล์เท่านั้น คือ MainActivity.Java และ activity_main.xml ไฟล์นี้จะเป็น Activity ที่เป็นค่า Default ที่ Eclipse ได้สร้างมาให้

เมื่อ View ดู Code ก็จะเห็นดังนี้

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/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:padding="@dimen/padding_medium"
        android:text="@string/hello_world"
        tools:context=".MainActivity" />

</RelativeLayout>


คำอธิบายจะเห็นว่าในหน้า Graphical Layout จะมี Widget ที่ Textview อยู่ซึ่งเป็นค่า Default ที่ Elipcse ได้สร้างมาให้ โดยที่ค่า Text คำว่า "Hello world!" ถูกเรียกจาก

android:text="@string/hello_world"









ซึ่งเป็นค่าตัวแปร hello_word ถูกจัดเก็บไว้ใน strings.xml

Android Basic Java Syntax

/res/values/strings.xml
<resources>
    <string name="app_name">MyApp</string>
    <string name="hello_world">Hello world!</string>
    <string name="menu_settings">Settings</string>
    <string name="title_activity_main">My App V 1.0</string>
</resources>


หรือถ้าไม่ต้องการเรียกว่าค่าตัวแปรที่จัดเก็บอยู่ใน XML สามารถกำหนดค่าได้โดยตรงเช่น android:text="Hello world!"

เพิ่มเติม
ไฟล์ strings.xml เป๋นไฟล์ XML ที่จัดเก็บค่าตัวแปรต่าง ๆ ที่โปรแกรมใน Android สามารถเรียกใช้งานได้ในทันที เหตุผลที่บางตัวแปรจัดเก็บไว้ในนี้ เพราะเมื่อนำไปใช้งานจริงไฟล์ที่เป็น XML สามารถจัดการง่ายกว่า เมื่อตอนที่นำโปรแกรมไปใช้ ซึ่งอาจจะนิยมจัดเก็บค่า Config ต่าง ๆ ของโปรแกรม สำหรับการงานค่าตัวแปรของ XML ที่อยู่ใน /res/values/ สามารถอ่านได้ในบทความถัดไป

MainActivity.java
package com.myapp;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

}


โดย Method ที่เป็นค่า Default จะมีอยู่ 2 ตัวคือ onCreate() และ onCreateOptionsMenu()

- onCreate() เป็น Method ที่ Android จะโหลดขึ้นมาและทำงานครั้งแรกสุด ซึ่งจะเห็นว่า setContentView(R.layout.activity_main) คือมีการโหลด Layout จาก activity_main มาแสดง
- onCreateOptionsMenu() เป็น Method ที่ทำหน้าที่โหลด Menu ขึ้นมาแสดง


คำอธิบาย

    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); // Bundle savedInstanceState เป็น Object ของ import android.os.Bundle; ทำหน้าที่จัดการ Resource และสถานะของโปรแกรม
        setContentView(R.layout.activity_main); // โหลด Layout ของ activity_main.xml มาแสดง
    }


    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);  // กรณีที่ใน activity_main.xml มี XML ที่เกี่ยวกับ Menu ก็จะโหลดเมนูเหล่านั้นไปแสดงด้วย
        return true;
    }


การสร้างตัวแปรเพื่ออ้างถึง Widget ที่อยู่บน XML Layout ด้วย Java

ต่อไปจะเป็นการสร้าง Widget หรือ Element ลงใน Android XML Activity Layout Form และการอ้างถึงและเรียกใช้งาน Widgets เหล่านั้น

Android Basic Java Syntax

ลาก TextView มาลง Android XML Activity Layout Form

    <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="78dp"
        android:text="TextView" />


Android Basic Java Syntax

เมื่อดูในมุมมองของ XML ก็จะเห็น XML Tag ของ TextView ที่เราได้สร้างซึ่งชื่อว่า textView1

การเขียน Code บน Java

        TextView txtView;
        txtView = (TextView)findViewById(R.id.textView1);


Android Basic Java Syntax

คำอธิบาย
ในตัวอย่างประประกาษตัวแปรชื่อว่า txtView มี Type เป็น TextView และทำการ อ้างถึง Widgets ที่ชื่อว่า (R.id.textView1)

Android Basic Java Syntax

จากตัวอย่างจะเห็นว่ายังมี Error อยู่ ซึ่งในโปรแกรม Eclipse จะแจ้ง Error ให้ทราบ และแนะนำวิธีการแก้ไขปัญหาเบื้องต้น

Android Basic Java Syntax

รายการ Error ทั้งหมดจะแสดงใน Problems

Android Basic Java Syntax

โดย Error นี้เกิดจากเราเรียกใช้ Widgets ของ TextView แต่ยังไม่มีการ import Library ของ TextView เข้ามา

Android Basic Java Syntax

หรือวิธีที่ง่ายที่สุดคือการคลิกที่คำแนะนำของโปรแกรม ซึ่งจะมีการ import ให้อัตโนมัติ

Android Basic Java Syntax

ทำการ import เข้ามาเรียบร้อยแล้ว ซึ่ง Error ดังกล่าวจะหายไป หรือถ้ายังไม่หายให้ลองทำการ Clean Project โดยไปที่

Android Basic Java Syntax

เมนู Project -> Clearn

Android Basic Java Syntax

เลือก Project แล้วก็ OK

Android Basic Java Syntax

เมื่อกลับมาที่ Code ของ Java Error ดังกว่างก็จะหายไป

เพิ่มเติม
ใกนารเขียนโปรแกรมบน Eclipse การแก้ไข Code บางอย่างอาจจะยังไม่ Effect ในทันที วิธีแก้ไขคือให้เราทำการ Clean Project ทุกครั้งที่ต้องการดูผลการเปลี่ยนแปลง

เพิ่มเติมอีกนิด
ในส่วนของ Code ที่เป็น Java บางครั้งจะมีแถบสีแจ้งสถานะของ Code เช่น
- แดง หมายถึง Error จะต้องแก้ไขไม่ฉะนั้นจะรันไม่ได้
- เหลืองล้ม หมายถึง Warning สามารถรันต่อไปได้ แต่ควรแก้ไขให้ถูกต้อง


หลังจากทำการอ้างถึง Widgets หรือ Element ที่อยู่ใน XML Layout ได้แล้ว สามารถเรียกใช้โดยการกำหนดค่า หรือสร้าง Event ต่าง ๆ ได้ ขึ้นอยู่ว่า Widgets ตัวนั้นมีหน้าที่และคุณสมบัติอะไรบ้าง โดยในตัวอย่างจะให้ TextView แสดงข้อความว่า "Welcome to www.ThaiCreate.Com" และข้อความมีสีแสดง

        TextView txtView;
        txtView = (TextView)findViewById(R.id.textView1);
        txtView.setText("Welcome to www.ThaiCreate.Com");
        txtView.setTextColor(Color.RED);


Android Basic Java Syntax

ในการเรียกใช้ setTextColor จะต้องทำการ import android.graphics.Color; เข้ามาด้วย

ทดสอบรันบน Emulator

ได้ผลดังรูป

Android Basic Java Syntax

ตัวอย่างการสร้าง Event ให้กับ Widgets หรือ Element

ใรตัวอย่างเราจะเห็นว่ามี TextView ชื่อว่า textView2 ซึ่งแสดงข้อความคำว่า "Hello world!" เราจะมาสร้างเงื่อนไขเมื่อมีการคลิกที่ textView1 และให้ textView2 แสดงคำว่า "Hello www.ThaiCreate.Com" และมี Dialog Box คำว่า "Hello www.ThaiCreate.Com" เช่นเดียวกัน

Android Basic Java Syntax

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="93dp"
        android:padding="@dimen/padding_medium"
        android:text="@string/hello_world"
        tools:context=".MainActivity" />


Code ที่เป็น Java เขียนดังนี้

package com.myapp;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
import android.widget.TextView;
import android.graphics.Color;
import android.view.View;
import android.app.AlertDialog;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        // Dialog
        final AlertDialog.Builder adb = new AlertDialog.Builder(this);
        
        // textView1
        TextView txtView;
        txtView = (TextView)findViewById(R.id.textView1);
        txtView.setText("Welcome to www.ThaiCreate.Com");
        txtView.setTextColor(Color.RED);
        txtView.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
            	// Perform action on click
            	
            	// textView2
                TextView txtView2;
                txtView2 = (TextView)findViewById(R.id.textView2);
                txtView2.setText("Hello www.ThaiCreate.Com");
                
                // Show Dialog
                AlertDialog ad = adb.create();
                ad.setMessage("Hello www.ThaiCreate.Com");
                ad.show();
            }
        });        
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
    
}


Screenshot

Android Basic Java Syntax

เมื่อคลิกที่ Welcome to www.ThaiCreate.Com ที่เป็นก็จะแสดงข้อความ "Hello www.ThaiCreate.Com" ใน textView2 และ Dialog Box








การสร้าง Widgets หรือ Element ภายใต้ Dynamic Runtime
จากตัวอย่างก่อนหน้านี้ เราได้ทำการเรียกใช้ Widges อยู่ที่อยู่ XMl Layout แล้ว เราจะลองมาดูการสร้าง Widgets ภายใต้ Runtime หรือสร้างโดย Code ที่เป็น Java


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

</RelativeLayout>


MainActivity.java
package com.myapp;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
import android.widget.TextView;
import android.graphics.Color;
import android.view.View;
import android.app.AlertDialog;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main);
               	
        // Create txtView1
        TextView txtView1 = new TextView(this);  
        txtView1.setText("Welcome to www.ThaiCreate.Com");
        txtView1.setTextColor(Color.RED);
        setContentView(txtView1);
        
        final AlertDialog.Builder adb = new AlertDialog.Builder(this);
        
        txtView1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
            	// Perform action on click
            	
                // Show Dialog
                AlertDialog ad = adb.create();
                ad.setMessage("Hello www.ThaiCreate.Com");
                ad.show();
            }
        });         
        
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
    
}


Screenshot

Android Basic Java Syntax

txtView1 เป็น TextView ที่สร้างบน Java ผ่าน Runtime

   
Share


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


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


   


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

 
Android File Structure โครงสร้างของไฟล์ของ Android บน Smart Phone และ Tablets
Rating :

 
รู้จัก Palette หรือเครื่องมือ Widgets Element ต่าง ๆ ที่อยู่ใน Android และ Eclipse
Rating :

 
Android สร้าง Launcher Icons และ Title Bar บน Eclipse และ ใช้งาน Emulator เบื้องต้น
Rating :

 
ฟรี!! อบรม Android เรียน Android จะเขียน แอนดรอยด์ แหล่งความรู้แบบ ฟรี ๆ
Rating :

 
Android Change Launcher Icons การเปลี่ยนไอคอนของโปรแกรมทีเขียนบนแอนดรอยด์
Rating :

 
การแก้ปัญหาเบื้องต้นเมื่อ Emulator ไม่ตอบสนอง ไม่สามารถรันโปรแกรม Android ได้
Rating :

 
Android - Process system is not responding / has stopped / unexpectedly
Rating :

 
การใช้งาน Debugging (LogCat) ในการเขียน Android บนโปรแกรม Eclipse IDE (Android-Eclipse)
Rating :

 
การเซ็ตให้ Eclipse - Run / Debug โปรแกรม Android บน Device และ Smart Phone หรือ Tablets จริง
Rating :

 
Android Export APK การนำ App ที่เขียนบน Eclipse ทำเป็น .apk ไป Install ใช้งานจริงบน Smart Phone และ Tablets
Rating :

 
Android Sample Project ของ Android SDK ที่อยู่ใน Eclipse มีอะไรดีและน่าสนใจกว่าที่คิด
Rating :

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

 
Android การทำ Splash Screen Loading ในช่วงระหว่างการเข้าสู่ App หรือระหว่างในช่วงรอการเปลี่ยนหน้า
Rating :

 
Android External Font Face / Font Color / Font Size
Rating :

 
Android Import Jar Library
Rating :

 
Android get current Date/Time
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 04
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 อัตราราคา คลิกที่นี่