Development

สวัสดี Android (Basic)

สวัสดี Android (Basic) บทนี้เราจะมาเริ่มสร้างโปรแกรมง่ายๆ กันครับ

เมื่อพูดถึงเวลาที่ Programmer จะเรียนรู้ภาษาโปรแกรมอะไรแล้ว ส่วนใหญ่ Programmer
ก็จะเริ่มจากการทักทายภาษาโปรแกรมนั้นๆ ก่อนครับ Hello Android ^^

*************** ช่วงที่ 1 สร้าง Android Project ใน Eclipse ***************

เปิด Eclipse ขึ้นมาครับ แล้วไปที่ File > New > Other… หรือกด Ctrl + N ก็ได้เหมือนกันครับ

รูปที่ 1 แสดงขั้นตอนการ Create Project

สวัสดี Android (Basic) บทนี้เราจะมาเริ่มสร้างโปรแกรมง่ายๆ กันครับ

เมื่อพูดถึงเวลาที่ Programmer จะเรียนรู้ภาษาโปรแกรมอะไรแล้ว ส่วนใหญ่ Programmer
ก็จะเริ่มจากการทักทายภาษาโปรแกรมนั้นๆ ก่อนครับ Hello Android ^^

*************** ช่วงที่ 1 สร้าง Android Project ใน Eclipse ***************

เปิด Eclipse ขึ้นมาครับ แล้วไปที่ File > New > Other… หรือกด Ctrl + N ก็ได้เหมือนกันครับ

รูปที่ 1 แสดงขั้นตอนการ Create Project

จากนั้นเลือก Android Project ครับ


รูปที่ 2 แสดงขั้นตอนการเลือก Android Project

เมื่อเลือกถูกต้องแล้วจะเห็นหน้าต่าง New Android Project เพื่อให้เรากรอกข้อมูลเล็กน้อย
เกี่ยวกับการสร้าง Project ของเราครับ

Project Name := Android [ชื่อ Folder ที่เก็บ File ในเครื่อง PC ครับ]


รูปที่ 3 แสดงขึ้นตอนการตั้งชื่อโปรแกรม

Build Target := Android 2.2 [รุ่นของ Android ครับ]


รูปที่ 4 แสดงการเลือกรุ่นของ Android

Application Name := Hello, Android [ชื่อโปรแกรมครับ]
Package Name := com.example.helloandroid [ชื่อ Folder ของ File ใน Folder Project Name อีกทีครับ]
Create Activite := HelloAndroid

เสร็จแล้วกด Finish ครับ เท่านี้เราก็ได้โปรแกรม Hello, Android แล้วครับ


รูปที่ 5 แสดงขั้นตอนตั้งชื่อโปรแกรม, Package และ Activite

จากการสร้าง Android Project ข้างบน ถ้าของใครไม่มี Error อะไร ก็สามารถลอง Run ได้ครับ


รูปที่ 6 แสดงขั้นตอนการเข้าเมนูรัน

โปรแกรมที่เราสร้างขึ้นมาครับจะแสดงเลยเมื่อ Boot เสร็จครับ


รูปที่ 7 แสดงหน้าจอโปรแกรมที่กำลังทำงาน

Icon โปรแกรมและชื่อโปรแกรมที่เราสร้างครับ สักเกตุที่มุมซ้ายล่าง ตัวเขียวๆ


รูปที่ 8 แสดง Icon ของโปรแกรมที่สร้างขึ้น

ส่วนใครที่เจอ Error แบบนี้ครับ
Error generating final archive: Debug Certificate expired on…


รูปที่ 9 แสดงข้อความ Error

วิธีแก้ครับ ให้เข้าไปที่ Control Panel ไปปรับตรงที่ Region and Language

(1) เปลี่ยน Formats จาก Thai (Thailand) เปลี่ยนเป็น English (United States)


รูปที่ 10 แสดงการเปลี่ยน Formats

(2) เปลี่ยน Location จาก Thailand เปลี่ยนเป็น United States


รูปที่ 11 แสดงการเปลี่ยน Location

เมื่อเราเปลี่ยน Formats และ Location เสร็จแล้ว ให้เราเปิดโปรแกรม Eclipse ขึ้นมา
จากนั้นไปที่ Window -> Perferences แล้วเข้าไปที่ Android -> Build
สักเกตุที่ Default debug keystore: ให้เราเข้าไปลบไฟล์ชื่อ debug.keystore ตาม Path


รูปที่ 15 แสดง Path ของไฟล์ keystore

เมื่อได้ Path ที่ถูกต้องมาแล้วให้เราไปลบไฟล์ debug.keystore ครับ


รูปที่ 12 แสดงการลบไฟล์ keystore

เมื่อลบไฟล์เสร็จแล้วให้เข้าไปที่โปรแกรม Eclipse แล้วไปที่ Project -> Clean…


รูปที่ 13 แสดงการ Clean Project

จากนั้นจะมีหน้าต่าง Clean ขึ้นมาให้เราเลือก Clean all projects แล้วกด OK


รูปที่ 14 แสดงการ Clean All Project

หลังจากนั้นลองดูว่า Error จะหายไปแล้วครับ ลอง Run โปรแกรมดูอีกครั้งครับ

******************** ช่วงที่ 2 ลองเขียนโค้ด ********************

ตอนนี้เราจะมาดูโค้ดที่เราได้มาตอนสร้าง Android Project กันครับ เปิดโปรแกรม Eclipse ขึ้นมาครับ
แล้วสังเกตุทางด้านซ้ายครับตรง Package Explorer ครับ
เลือก Project Android -> src -> com.example.helloandroid -> HelloAndroid.java


รูปที่ 16 แสดงการเข้าถึงไฟล์ HelloAndroid.java

โค้ดภายในไฟล์ HelloAndroid.java ครับ


01: package com.example.helloandroid;
02:
03: import android.app.Activity;
04: import android.os.Bundle;
05:
06: public class HelloAndroid extends Activity {
07: /** Called when the activity is first created. */
08: @Override
09: public void onCreate(Bundle savedInstanceState) {
10: super.onCreate(savedInstanceState);
11: setContentView(R.layout.main);
12: }
13: }

ผมจะค่อยๆ อธิบายที่ละส่วนเท่าที่ผมเข้าใจครับ ถ้าใครที่เขียน Java ได้อยู่แล้วคงไม่มีปัญหาอะไรครับ

จากโค้ดที่เราได้มาตอนที่สร้าง Project เราสามารถเขียนโค้ดเพิ่มเข้าไปได้ทันทีครับ
ตอนนี้เราจะการเพิ่มข้อความเข้าไปใน โปรแกรมของเราครับ โดยก่อนอื่นเราจะทำการ
Import Class ชื่อว่า TextView ครับ เพิ่มถัดจาก import android.os.Bundle;


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

จากนั้นก็ทำการเขียนโค้ดสร้าง TextView เพื่อแสดงข้อความของเราเองครับ
เพิ่มถัดจาก super.onCreate(savedInstanceState);
สร้าง Object ชื่อว่า tv โดยใช้ Class จาก TextView ครับ จากนั้นก็ใส่ข้อความข้างใน
โดยใช้คำสั่ง .setText(“ข้อความ”) ครับ


super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello, DroidSans");

เสร็จแล้วก็แก้ ContentView นิดหน่อยครับ แก้เป็นชื่อ tv ครับ
setContentView() เป็นคำสั่งให้จอแสดงผล ถ้าเราไม่ได้เรียกคำสั่งนี้จอจะว่างเปล่าครับ


setContentView(tv);

เมื่อเสร็จแล้วโค้ดที่ได้จะออกมาหน้าตาแบบนี้ครับ


01: package com.example.helloandroid;
02:
03: import android.app.Activity;
04: import android.os.Bundle;
05: import android.widget.TextView;
06:
07: public class HelloAndroid extends Activity {
08: /** Called when the activity is first created. */
09: @Override
10: public void onCreate(Bundle savedInstanceState) {
11: super.onCreate(savedInstanceState);
12: TextView tv = new TextView(this);
13: tv.setText("Hello, DroidSans");
14: setContentView(tv);
15: }
16: }

เมื่อแก้ไขเสร็จแล้วลอง Run Program ของเราดูครับ


รูปที่ 17 แสดงโปรแกรมที่แก้ไขแล้ว

ถ้าใคร Run Program ไม่ผ่าน ให้ลองปิด Eclipse แล้วเปิดใหม่ดูครับ
ผมขอจบการเขียนไว้เท่านี้ก่อน แล้วจะกลับมาพูดถึงการจัดวาง Layout
การเปลี่ยน Icon โปรแกรมของเราและอื่นๆ อีกครั้งภายหลังครับ ^^

ขอขอบคุณสำหรับแหล่งข้อมูลครับ

ข้อมูลส่วนใหญ่
http://developer.android.com/resources/tutorials/hello-world.html

วิธีแก้ไข Error : Error Generating Final Archive
http://www.mobiledevguru.com/

58 Comments

  1. LarcenCiel Post on May 2, 2011 at 4:16 am

    #142025

    dd

  2. takumi10

    takumi10 Post on May 2, 2011 at 4:54 am

    #142065

    ดันๆ

  3. mirage

    mirage Post on May 2, 2011 at 5:25 am

    #142101

    รออ่านแบบเต็มๆอยู่นะครับ ผมอยากเขียนนะครับแต่ผมเขียนเป็นแต่ภาษา C -*-
    หาหนังสือภาษา Java มาอ่านหลายเล่มแล้ว ตอนนี้ก็ยังเขียนภาษา Java ไม่ได้เลยครับ 😛

    • tanit9999

      tanit9999 Post on May 2, 2011 at 6:25 am

      #142151

      เขียน C เป็นจาว่าก็ไม่ยากเกินไปหรอกครับ

    • Freekick042 Post on May 3, 2011 at 3:32 pm

      #143221

      สมัยผมเรียนเค้าให้จาวาปี1แล้วCปี3 จะบ้าตาย แต่มันก็แนวๆเดียวกันแหละ

      ยาวไปๆเลยครับ ผมอยากลองเขียนนะ แต่ติดตรงขี้เกียจอ่านนี่แหละ หนังสือเล่มบะเร่อ อังกฤษทั้งนั้นขี้แปลบทนำจบหมดแรงพอดี

    • mirage

      mirage Post on May 3, 2011 at 7:40 pm

      #143363

      Java มันเยอะครับ มีคลาสมีอะไรเยอะแยะอ่ะครับ ผมเองก็ไม่ค่อยถนัดโปรแกรมเชิงวัตถุด้วยสิ 🙂

  4. surasak_aey Post on May 2, 2011 at 6:32 am

    #142156

    เข้ามาให้กำลังใจคนเขียนบทความดีๆ ครับ
    รออ่านอยู่ครับ สู้ๆ

  5. jumbo_cs

    jumbo_cs Post on May 2, 2011 at 7:25 am

    #142190

    คนอ่านว่ารูปภาพมันเยอะไปรึเปล่าครับ ?

    • SekRanger

      SekRanger Post on May 2, 2011 at 9:05 am

      #142247

      คนอ่านอย่างผมน่ะชอบครับ คนเขียนอย่างท่านอ่ะดิ จะน่วมเอานา

    • n4kin

      n4kin Post on May 3, 2011 at 6:05 am

      #143013

      ชอบด้วยคนครับ ภาพบางภาพแทนคำอธิบายเป็นร้อย 😉
      เอาใจช่วย และจะคอยติดตามครับ 😀

  6. Deor Post on May 2, 2011 at 9:09 am

    #142249

    กำลังดีครับ

    จะได้เข้าใจง่ายๆด้วยครับ

    สำหรับคนไม่รู้อะไรเลยอย่างผมอะนะ = =

  7. Shaowhong

    Shaowhong Post on May 2, 2011 at 4:32 pm

    #142340

    เยี่ยมไปเลยครับ

  8. kong

    kong Post on May 2, 2011 at 7:16 pm

    #142495

    ไม่สอนวิธี setup Development Environment ก่อนเหรอครับ

    EDIT: เห็นแล้วครับ บล็อกก่อนหน้านี้ ขอบคุณครับ

  9. Novice_android

    Novice_android Post on May 2, 2011 at 7:17 pm

    #142499

    ดีมากเลยครับ เป็นเเนวทางสำหรับมือใหม่หัดเขียน ^^ ดันครับ

  10. VolksWagen_NB

    VolksWagen_NB Post on May 2, 2011 at 7:40 pm

    #142515

    เยี่ยมครับ!!

  11. frankind

    frankind Post on May 2, 2011 at 9:00 pm

    #142573

    จาวาเขียนง่าย ดังนั้น Android ก็ทำให้เขียนได้่ง่ายด้วย ^^

  12. spk190537

    spk190537 Post on May 2, 2011 at 10:10 pm

    #142639

    Java เพียวๆพอได้ครับ ตอนนี้หันมาศึกษา Android ขอบคุณมาครับ

    ผมต้องศึกษาอีกเยอะเลย ขอบคุณมากครับสำหรับ วิทยาทาน ดีๆ

    แต่ Xml นี้ไม่ค่อยมีความรู้เท่าไหร

  13. bankkung

    bankkung Post on May 3, 2011 at 5:44 am

    #142986

    เป็นบล็อกแรกสำหรับ development บน droidsans

  14. tonhor

    tonhor Post on May 3, 2011 at 5:49 am

    #142988

    เจ๋งๆ 😀

  15. tot_anusak

    tot_anusak Post on May 3, 2011 at 6:08 am

    #143020

    ขอบคุณมากครับ รอโพสต์นี้มานาน ในที่สุดก็มาแล้ว 😀

  16. Rice Cooker

    plaumkamon Post on May 3, 2011 at 6:37 am

    #143062

    ชื่นชมครับ การจะเขียนบทความอะไรยาวๆ มันเหนื่อย โดยเฉพาะการสอนแบบนี้
    ที่จริงผมก็มีแผนจะเขียน Tutorial แบบนี้เหมือนกันเขียนตั้งแต่ปีที่แล้วก็ยังไม่เสร็จมันยาวมาก ตอนนี้ก็ยังดองอยู่ใน Word ไว้มันเสร็จจริงๆ จะเอามาให้ดูครับ ถ้ายังขยันอยู่ 555+

  17. puuga

    puuga Post on May 3, 2011 at 7:07 am

    #143090

    Error generating final archive: Debug Certificate expired on…

    ของผมก็แก้ตามนี้ พอ compile ผ่านแล้ว ก็แก้ Region and Language เป็นไทยเหมือนเดิม
    พอทำ project ตัวต่อๆไปก็ไม่มีปัญหาแล้วนะครับ ของคนอื่นเป็นยังไงบ้าง เพราะของเพื่อนผม ตั้งค่าเป็นไทยไม่ได้เลย

  18. kanatorn

    kanatorn Post on May 3, 2011 at 7:08 am

    #143092

    ขอบคุณมากเลยครับ
    เป็นประโยชน์มากๆ 😀

  19. jackkykung Post on May 3, 2011 at 7:35 am

    #143108

    ไม่เข้าใจเลยแต่รู้สึกดี 😀

  20. untimaze Post on May 3, 2011 at 7:49 am

    #143113

    อยากให้มีหัวข้อแบบนี้เยอะๆครับ จะได้เป็นตัวจุดชนวนให้มีผู้พัฒนาโปรแกรมเพิ่มขึ้น (คนที่อ่านแล้วสนใจ)

  21. nuimamon Post on May 3, 2011 at 8:18 am

    #143124

    ขอบคุณมากค้าบ

  22. group_doll

    group_doll Post on May 3, 2011 at 9:52 am

    #143151

    จะได้สมกับเป็นเว็บสำหรับสังคมนักพัฒนาAndroid ^^

  23. vvDroid Post on May 3, 2011 at 3:54 pm

    #143228

    ชอบเว็บนี้เว้ยเฮ้ย
    มันหลากหลายดีจริง

  24. Ekae

    Ekae Post on May 3, 2011 at 4:33 pm

    #143246

    แจ่มไปเลยครับ เป็นกำลังใจให้ครับ

  25. Jeff08 Post on May 3, 2011 at 5:12 pm

    #143269

    ขอบคุณมากครับ ตอนนี้ก็กำลังจะหาเวลาศึกษาอยู่เหมือนกันครับ

  26. alooha

    alooha Post on May 3, 2011 at 5:49 pm

    #143289

    ขอบคุณมากๆครับ สำหรับบทความดีๆ แต่ Java มันยากกว่า C มากๆเลย T_T

    • SekRanger

      SekRanger Post on May 3, 2011 at 6:07 pm

      #143305

      Java ไม่ยากนะครับ แต่มันเยอะ

      Android นี่ทั้งเยอะ ทั้ง.งงครับ วิธีการสร้าง UI, การเรียก Resource มันงงมากๆ ต้องใช้เวลานิดนึงครับ

    • jumbo_cs

      jumbo_cs Post on May 3, 2011 at 6:17 pm

      #143312

      เห็นด้วยอย่างที่สุดครับ

  27. Novice_android

    Novice_android Post on May 3, 2011 at 6:24 pm

    #143319

    ใช่เลยตอนนี้กำลังใช่เเรงอย่างมหาศารในการมั่วอยู่ คาดว่าก็มึนๆงงๆทั้งวันต่อไป 555+

  28. songthai

    songthai Post on May 3, 2011 at 8:39 pm

    #143415

    Basic ตรงนี้ผมผ่านมาแล้ว งงอยู่สามวันเพราะเซ็ต English เนี่ยหละไปหาที่เว็บนอกเจอ
    โปรแกรมถึงจะไม่ error แต่ก็เถอะเขียนตามได้แต่ไม่เข้่าใจอะครับ import ว่าเราควร import อะไรได้บ้างเวลาใช้ fuction หรือคำสั่งเราจะต้อง import อะไรมาบ้าง แล้วพวก class ต่างๆ ผมก้ไม่เข้าใจ โหลด Textbook มาเพียบแต่ไม่รู้เรื่องเลย งงมากๆเลยอะ ผมอยากรู้หลักการเขียนว่ามีหลักอย่างไรบ้างเริ่มจากตรงไหนดีครับผม ทางที่ดีน่าจะมี Project เล็กๆ ให้ผู้น้อยที่ไม่มีความรู้สักเท่าไหร่ได้ ทำตามก็ดี แล้วก็อธิบายไปน่าจะดีมากๆ เลยครับผม …ขอบคุณครับ

    • jumbo_cs

      jumbo_cs Post on May 3, 2011 at 8:56 pm

      #143425

      Basic ยังมีอีกหลายส่วนที่ต้องอธิบายครับ มีไฟล์อื่นมาประกอบอีกครับ

      ส่วน Class ต่างๆ ลองดูได้ที่นี้ครับ http://code.function.in.th/mobile-apps

    • songthai

      songthai Post on May 4, 2011 at 3:34 am

      #143742

      ขอบคุณครับ แล้วผมจะลองกลับไปฟัดกับการเขียนโปรแกรม Android อีกรอบ การเขียนโปรแกรมถ้ามีคนสอนหรือชี้แนะจะทำให้เข้าใจ แล้วทำให้การเรียนรู้รวดเร็วยิ่งขึ้น (ผมเขียนแต่พวก vb html php แบบพออ่านโค๊ดรู้เรื่อง)

  29. LazyBones Post on May 3, 2011 at 9:20 pm

    #143440

    ขอบคุณครับ เป็นประโยชน์มากๆเลย : D

  30. Khunanon

    Khunanon Post on May 4, 2011 at 2:01 am

    #143673

    เจ๋งครับบ รออ่านตังเต็ม ผมเขียนเป็นแต่ c java เคยเรียนมานิดเดียว แต่ก็เก็บคืนอาจารย์ไปแล้วครับ

  31. SekRanger

    SekRanger Post on May 4, 2011 at 3:52 am

    #143766

    เข้ามาดูอีกรอบ ตั้งชื่ออีมูเลเตอร์ได้ชุ่ยพอกับผมเลยครับ

  32. cykop Post on May 4, 2011 at 4:47 am

    #143823

    ถนัด C เหมือนกัน

    JAVA ไม่เคยเขียนเลย

  33. zcrach Post on May 4, 2011 at 4:56 am

    #143831

    เราไม่จำเป็นต้องจำก็ได้แรกๆ แค่เราพอมีเบสิค java แล้วใช้วิธีอิงตัวแปร แล้วกด . หลังตัวแปร เดี๋ยวก็มี method มาให้เลือกตามต้องการ จากนั้นถ้ามันมี error เราก็กดที่ตัว error จะมีกล่องมาบอกวิธี fix แล้ว eclipse จะ import ให้เราเอง

    • SekRanger

      SekRanger Post on May 5, 2011 at 6:22 pm

      #145085

      ปัญหาคือ "ตรูจะใช้ Method ไหนฟระเนี่ยยยยย" บางอันก็ Overload เป็น 10 รูปแบบ

  34. JugjunG Post on May 4, 2011 at 6:23 am

    #143940

    กด Like ให้ 18 ทีเลยครับ 🙂

  35. thirayuw

    thirayuw Post on May 4, 2011 at 4:57 pm

    #144171

    เคยโหลดมาลองแต่ง๊งงงๆๆๆ

  36. lift2012

    lift2012 Post on May 4, 2011 at 8:00 pm

    #144321

    หนับ หนุน ครับ น่าทำเป็น Share ไว้น่ะครับ ดี ๆ

  37. lift2012

    lift2012 Post on May 4, 2011 at 8:04 pm

    #144328

    หนับ หนุน ครับ น่าทำเป็น Share ไว้น่ะครับ ดี ๆ

  38. leedaesong

    leedaesong Post on May 4, 2011 at 8:36 pm

    #144365

    เทอมหน้าผมเรียน java คิดว่าจะทำโปรเจ็คจบเป็นแอปแอนดรอยด์ซักตัวด้วย (เร็วไปมัีย ฉันเพิ่งปี 2 – -" ) ขอบคุณสำหรับบ้อมูลค้าบ

  39. thum_inter

    thum_inter Post on May 4, 2011 at 10:15 pm

    #144450

    อยากให้มีขั้น advance ตามมาเร็วๆ จังครับ จะได้ลองหัดเขียนที่มันใหญ่ขึ้นกว่านี้อย่างเช่น เกมส์ ประมาณนี้อ่ะครับ

  40. noppakun Post on May 4, 2011 at 11:38 pm

    #144530

    ขอบคุณมากครับ สนับสนุนครับ

  41. Solis Post on May 6, 2011 at 3:31 am

    #145451

    ฮ่าๆๆ โรงเรียน ไม่ได้สอนจาวา เศร้า

  42. nemomancear

    nemomancear Post on May 9, 2011 at 6:09 pm

    #148484

    ขอบคุณ ครับ

  43. jor.jiew

    jor.jiew Post on May 29, 2011 at 10:47 pm

    #163584

    ขอบคุณสำหรับบทความดีๆ ค่ะ

  44. watcharatle Post on June 30, 2011 at 6:51 am

    #184806

    ขอบคุณมากเลยครับผมกำลังหัดเขียนApp อยู่เจอแต่ภาษาอังกฤษ เยี่ยมมากเลยเฮีย

  45. swaen Post on July 3, 2011 at 6:30 pm

    #186879

    ความพยายามอยู่ที่ใหน ความสำเร็จอยู่ที่นั้น จะสู้ครับ ขอบคุณกับบทความดีๆครับ

  46. Paradigm_99

    Paradigm_99 Post on August 5, 2011 at 5:26 am

    #211365

    Very Good my friend ^^

Leave a Reply

To Top