Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
ISBN 978-616-200-363-9
ตวอยาง
ศภชย สมพานช
Basic Android Programming
นนทบร : ไอดซฯ, 2555
280 หนา
1. แอนดรอยด
2. การเขยนโปรแกรม
I ชอเรอง
006.76
978-616-200-363-9
ธนวาคม 2555
บรษท ไอดซ พรเมยร จ�ำกด
200 หม 4 ชน 19 หอง 1901 อาคารจสมนอนเตอรเนชนแนลทาวเวอร
ถ.แจงวฒนะ อ.ปากเกรด จ.นนทบร 11120
โทรศพท 0-2962-1081 (อตโนมต 10 คสาย) โทรสาร 0-2962-1084
รำคำ 250 บำท
Android เปนเครองหมายการคาของบรษท Google, Eclipse เปนเครองหมายการคาของบรษท The
Eclipse Foundation และเครองหมายการคาอนๆ ทอางถงเปนของบรษทนนๆ
สงวนลขสทธตามพระราชบญญตลขสทธ พ.ศ. 2537 โดยบรษท ไอดซ พรเมยร จ�ากด หามลอกเลยน
ไมวาสวนใดสวนหนงของหนงสอเลมน ไมวาในรปแบบใดๆ นอกจากจะไดรบอนญาตเปนลายลกษณอกษร
จากผจดพมพเทานน
บรษท ไอดซ พรเมยร จ�ากด จดตงขนเพอเผยแพรความรเทคโนโลยสารสนเทศทงในระดบพนฐานและระดบสง
เรายนดรบงานเขยนของนกวชาการและนกเขยนทกทาน โดยเฉพาะงานทเกยวของกบสารสนเทศ ทาน
ผสนใจกรณาตดตอผานทางอเมลท [email protected] หรอโทรศพทหมายเลข 0-2962-1081
(อตโนมต 10 คสาย) โทรสาร 0-2962-1084
พมพครงท 1
ISBN
ส�ำหรบรำนคำและตวแทนจ�ำหนำย
โทรศพท 0-2962-1081-3 ตอ 112-114
โทรสาร 0-2962-1084
ลกคำสมพนธ
โทรศพท 0-2962-1081-3 ตอ 601
โทรสาร 0-2962-1084
ขอมลทางบรรณานกรม
Basic Android Programming
ผแตง ศภชย สมพานช http://www.facebook.com/thaivbnet
บรรณาธการ กตนนท พลสวสด [email protected]
ออกแบบปก อนน วาโซะ
ออกแบบและจดรปเลม วฒพนธ สมพระเมฆ
พสจนอกษร สนทร บรรลอศกด, มนฤด ศรอทโยภาส
ประสานงานการผลต สพตรา อาจปร, โสระวน เพยรพทกษ
E-BOOK PRODUCTION สรยรตน จอ, จราภรณ โสภา
จดพมพและจดจ�าหนายโดย
ตวอยาง
ในขณะท Smartphone Tablet และระบบปฏบตการ Android มการพฒนาขนมาอยางตอเนอง สง
หนงทมการพฒนาอยางตอเนองเชนกนกคอ แอพพลเคชน ไมวาจะเปนแอพพลเคชนส�าหรบรบ-สงขอความ,
ใชงาน GPS, ใชงานกลองวดโอหรอถายรป, ใชงาน Bluetooth, ใชงานอนเทอรเนต หรอจะเปนแอพพลเคชน
ทท�างานรวมกบฐานขอมล และเกม กมการพฒนาใหสามารถตอบสนองความตองการของผ ใชงานไดมาก
ขนเรอยๆ ซงการพฒนาตางๆ ทกลาวมาจะไมสามารถท�าไดเลยหากไมมพนฐานการเขยนโปรแกรมทด โดย
ผอานสามารถศกษาเรยนรหลกการและเทคนคการเขยนโปรแกรมส�าหรบพฒนาแอพพลเคชน Android ได
จากหนงสอเลมน
หนงสอเลมนไดรวบรวมความรพนฐานทจ�าเปนส�าหรบการพฒนาแอพพลเคชน Android ไวอยาง
ครบถวน ไมวาจะเปนการตดตงโปรแกรมส�าหรบการพฒนา สอนพนฐานการพฒนาแอพพลแคชนในระดบ
เบองตน ทงการใชงานอลเมนต การใช View หรอการใช Layout ส�าหรบออกแบบแอพพลเคชนในรปแบบตางๆ
ไปจนถงการอพโหลดแอพพลเคชนขนไปยง Play Store เพอใหผอานไดศกษาและสามารถน�าไปได ใชงานได
จรง อกทงยงมเทคนคและวธการแกไขปญหาในเบองตนไว ใหดวย ซงจะชวยใหผอานสามารถเรมตนพฒนา
แอพพลเคชน Android ไดดวยตวเอง เสมอนมผเชยวชาญคอยแนะน�าตลอดการเรยนร อกทงผอานสามารถ
สอบถามหรอปรกษาเทคนคและวธการแกไขปญหาการเขยนโปรแกรมไดตลอกเวลา เนองจากผเขยนมชอง
ทางการชวยเหลอไดท http://www.ebooks.in.th/thaivb.net
ทงนทางส�านกพมพหวงเปนอยางยงวา หนงสอเลมนจะมประโยชน ในการเรยนรการพฒนา
แอพพลเคชน Android ส�าหรบผอานไมมากกนอย และหากหนงสอเลมนมขอผดพลาดประการใด ตองขออภย
มา ณ โอกาสน
กตนนท พลสวสด
บรรณาธการ
บรรณาธการ
ตวอยาง
ค�าน�า
หนงสอ Basic Android Programming เลมน น�าเสนอเนอหาตงแตพนฐานการเขยน Android App
ไปกระทงถงการสราง App อยางงาย และสามารถใชไดจรง รวมไปถงน�าเสนอเนอหาทชวยใหผอานสามารถ
ปรบแตงสวนแสดงผลใน Android App ไดตามทตองการใหเหมอนกบ App มาตรฐานทคณพบเหนไดใน Play
Store โดยเรมตนจากเนอหาทงายทสด ไปจนกระทงถงการเขยนโปรแกรมรวมกบระบบฐานขอมล SQLite
ซงมประโยชนส�าหรบการพฒนาแอพพลเคชนทมความซบซอน
เนอหาในหนงสอเลมนแบงออกเปน 2 สวนใหญๆ คอ สวนเรมตนเรยนรและพฒนา อกสวนหนง
คอ สวนตวอยางการพฒนาแอพพลเคชนอยางงาย โดยสวนแรกมวตถประสงคใหผอานมพนฐานความรท
จ�าเปนส�าหรบการพฒนาแอพพลเคชน Android ในสวนทสองกเพอใหผอานสามารถเรยนรการน�าพนฐาน
ในสวนแรกไปใชงานส�าหรบพฒนาแอพพลเคชน Android ไดจรง
ผเขยนหวงวา เนอหาทน�าเสนอในเลมนจะเปนจดเรมตนทดส�าหรบคณผอานทเปนมอใหม ท
ตองการเรมตนพฒนา Android App อยางเปนระบบและไดผลลพธทเหนไดจรง ใหสามารถศกษาเนอหา
ในระดบสงตอไปไดดวยตวเอง
สดทายนผ เขยนหวงเปนอยางยงวา หนงสอเลมนจะมประโยชน ในการเรยนรและพฒนา
แอพพลเคชน Android ใหกบผอาน และหากหนงสอเลมนมขอผดพลาดประการใด ตองขออภยมา ณ โอกาส
น โดยผอานสามารถขอค�าแนะน�าและการชวยเหลอไดท http://www.ebooks.in.th/thaivb.net
ศภชย สมพานช
ธนวาคม 2555
ตวอยาง
Contents I
Part 1 ความรพนฐานการพฒนา Android App .....................................1
บทท 1 เตรยมตวกอนพฒนา Android App ..........................................3
การเตรยมสภาพแวดลอมในการพฒนา Android App ..................................................................................... 4
ดาวนโหลดและตดตงโปรแกรม Eclipse ................................................................................................. 4
ดาวนโหลดและตดตง Android SDK ...................................................................................................... 6
การตดตง ADT .......................................................................................................................................... 9
การก�าหนดให Editors แสดงหมายเลขบรรทดของโคด ......................................................................12
เรมตนสราง Hello World App ..........................................................................................................................13
รน Hello World App เพอทดสอบการท�างาน ...............................................................................................17
การสรางเครองโทรศพทจ�าลอง (Emulator) .....................................................................................................20
การรน Android Project เกดขอผดพลาด ........................................................................................................22
การบนทก Android Project ...............................................................................................................................23
การเปด Android Project ...................................................................................................................................25
การถอดรายการโปรเจกตออกจากโปรแกรม Eclipse ......................................................................................27
การเลอกพาธจดเกบ Workspace ใหม .............................................................................................................28
บทท 2 พนฐานการสราง Android App ..............................................29
การสรางเหตการณ click ใหกบปมกด Button ................................................................................................29
พนฐานการรบคาจากผใชงานดวย EditText .....................................................................................................36
การแสดงแถบขอความดวย Toast Notification .............................................................................................42
การก�าหนดสใหกบ widget ตางๆ .......................................................................................................................45
การลงสแบบไลโทนส (Gradient Color) ...........................................................................................................47
ก�าหนดสแบบไลโทนสในขณะออกแบบ ..................................................................................................47
ก�าหนดสแบบไลโทนสดวยการเขยนโคด ................................................................................................50
การสรางตวเลอกแบบเลอกไดมากกวา 1 รายการดวย CheckBox...............................................................51
การสรางตวเลอกแบบ 1 ตวเลอกดวย RadioButton .....................................................................................55
พนฐานการตรวจสอบขอผดพลาด .......................................................................................................................58
การสง SMS ดวย Android App ......................................................................................................................61
บทท 3 การแจงเตอนใน Android App ............................................... 67
พนฐานการแสดงไดอะลอกบอกซแบบ Alert .....................................................................................................67
การแสดง AlertDialog แบบมการตรวจสอบปมกด ..........................................................................................70
การรบขอมลจากผใชดวย Input Dialog ............................................................................................................75
การสรางไดอะลอกบอกซยนยนกอนออกจาก Android App ..........................................................................79
Contents
ตวอยาง
Android App Development
Basic Android ProgrammingII
บทท 4 สวนแสดงผลใน Android App ............................................... 81
ท�าความรจกกบสวนแสดงผลแบบ RelativeLayout .........................................................................................81
การเปลยนประเภท Layout .................................................................................................................................82
ท�าความรจกกบสวนแสดงผลแบบ LinearLayout ............................................................................................83
ท�าความรจกกบสวนแสดงผลแบบ TableLayout .............................................................................................85
การสรางสวนแสดงผลแบบแนวนอน..................................................................................................................88
การควบคมรปแบบสวนแสดงผล ........................................................................................................................90
การสรางสวนแสดงผลแบบเลอนขน-ลงดวย SlidingDrawer .............................................................................94
บทท 5 การสรางสวนแสดงผลแบบรายการดวย ListActivity .....................99
พนฐานการสรางสวนแสดงผลแบบรายการดวยคลาส ListActivity ...............................................................99
การสรางรายการใน ListActivity จากอารเรยของขอความ ...........................................................................102
พนฐานการแสดงรปภาพก�ากบแตละรายการในคลาส ListActivity ..............................................................107
การแสดงรายการใน ListActivity แบบใชรปภาพแตกตางกน ......................................................................110
การสราง Activity ทสามารถเปลยนสวนแสดงผลได .....................................................................................117
บทท 6 การสรางสวนแสดงผลแบบรายการดวย ListView และ Spinner ..... 123
พนฐานการสรางสวนแสดงผลแบบรายการดวย ListView ............................................................................123
การแสดงขอมลแบบหลายคอลมนใน ListView ..............................................................................................126
การแสดงรายการใน ListView แบบมตวเลอก CheckBox ..........................................................................132
พนฐานการลงสใน ListView แบบไลโทนส ......................................................................................................139
การลงสใน ListView แบบตรวจจบเหตการณ .................................................................................................143
พนฐานการสรางรายการใหผใชเลอกดวย Spinner ........................................................................................147
การแสดงรายการใน Spinner แบบมรปภาพก�ากบแตละรายการ.................................................................150
บทท 7 การสรางสวนแสดงผลแบบชองตารางดวย GridView ................. 155
พนฐานการสรางสวนแสดงผลแบบชองตารางดวย GridView ......................................................................155
การแสดงขอความและรปภาพในแตละชองตาราง .........................................................................................158
การใชตวเลอกแบบ CheckBox ใน GridView ...............................................................................................165
บทท 8 ระบบเมนใน Android .......................................................... 173
ท�าความรจกกบระบบเมนใน Android App ....................................................................................................173
การสรางเมน About Me ...................................................................................................................................178
การสรางเมนแบบ Popup ดวยคลาส PopupMenu .....................................................................................180
การสรางเมนใหกบแถบ Action Bar ................................................................................................................183
การใสรปภาพในเมนของ Action Bar ..............................................................................................................186
ตวอยาง
Contents III
บทท 9 การทำางานกบสวนแสดงผลตงแต 2 รายการขนไป ....................... 189
การสรางสวนแสดงผลทม 2 Activity และปมเปลยนสวนแสดงผลไป-มา ..................................................189
การรบ-สงขอมลระหวาง Activity .....................................................................................................................200
การสรางลงคใน ListActivity เชอมโยงไปยง Activity อน ...........................................................................206
บทท 10 พนฐานการใชงานฐานขอมล SQLite ใน Android App ............. 211
พนฐานการใชงานฐานขอมล SQLite ................................................................................................................211
การแสดงขอมลจากฐานขอมลดวย ListView ..................................................................................................219
การสรางสวนแสดงผลบนทกขอมล ..................................................................................................................226
Part 2 ตวอยางการพฒนา Android App อยางงาย ............................ 237
บทท 11 สรางแอพพลเคชน MiniBrowser ........................................ 239
บทท 12 สรางแอพพลเคชนกระจกวเศษ ............................................. 245
บทท 13 สรางแอพพลเคชนเบอรโทรฉกเฉน ........................................ 253
ภาคผนวก ก การเตรยมไฟล apk ใหพรอมใชงานจรง ........................... 263
ภาคผนวก ข การตดตงไฟล apk บนอปกรณจรง ................................ 267ตวอยาง
1
ความรพนฐานการพฒนา Android App
บทท 1 เตรยมตวกอนพฒนา Android App
บทท 2 พนฐานการสราง Android App
บทท 3 การแจงเตอนใน Android App
บทท 4 สวนแสดงผลใน Android App
บทท 5 การสรางสวนแสดงผลแบบรายการดวย ListActivity
บทท 6 การสรางสวนแสดงผลแบบรายการดวย ListView และ Spinner
บทท 7 การสรางสวนแสดงผลแบบชองตารางดวย GridView
บทท 8 ระบบเมนใน Android
บทท 9 การท�างานกบสวนแสดงผลตงแต 2 รายการขนไป
บทท 10 พนฐานการใชงานฐานขอมล SQLite ใน Android App
part
ตวอยาง
เตรยมตวกอนพฒนา Android App
1
หนงสอ Android App Development ฉบบ Basic & Workshop เลมน เปนหนงสอสอนและอธบาย
การเขยน Android App รวมกบโปรแกรม Eclipse โดยมเปาหมายเพอตองการใหผอานสามารถสราง Android
App ทมมาตรฐานตามทพบเหนอยในตลาด Play Store
ค�าถามหนงทผเขยนคดวาเกดขนกบผอานหลายๆ คนกคอ เมอเราเหนสวนแสดงผลใน Android App
ตางๆ ทเราคนเคยหรอชนชอบแลวมกจะกลบมาคดอยเสมอวา สวนแสดงผลแบบนนท�าอยางไร
เนอหาทผเขยนเลอกมาน�าเสนอทงหมดในเลมน เรมตนตงแตในระดบพนฐาน “Hello World” ไปจน
กระทงถงสรางสวนแสดงผลดงเชนทพบเหนไดใน Android App ทวไป และมตวอยาง Workshop ส�าหรบประมวล
ความรทน�าเสนอในหนงสอเลมน รวมเขามาเปน Android App ทสามารถใชงานไดจรงบนอปกรณ Smartphone
และ Tablet ทรนระบบปฏบตการ Android
การน�าเสนอของหนงสอเลมน เปนการน�าเสนอในลกษณะการอธบายดวยตวอยาง พรอมสอดแทรก
เทคนคการพฒนา Android App ในตวอยางนนๆ โดยมหวขอเนอหาเปนเสมอนเปาหมายของการอธบาย เชน
ในหวขอการสรางเหตการณ click ใหกบปมกด Button ผเขยนจะอธบายผานตวอยางการพฒนา Android App
ตวอยางหนง เพอใหผอานเขาใจหลกการและมองเหนแนวทางจากน�าไปใชงานจรง เปนตน
ทส�าคญกคอ เนอหาทน�าเสนอผอานสามารถน�าไปประยกตหรอตอยอดในการพฒนา Android App
ดวยตวเองไดอกดวย
ตวอยาง
Android App Development
Basic Android Programming4
การเตรยมสภาพแวดลอมในการพฒนา Android App
เพอใหผอานและผเขยนเขาใจตรงกน จงตองมการเตรยมสภาพแวดลอมของผอานใหพรอมใชงาน
กอน ในขณะทหนงสอเลมนจดจ�าหนาย Google มกจะมการอพเดตความคบหนาของ Android อยตลอดเวลา
สงผลใหบางขนตอนอาจจะเหมอน หรอแตกตางจากทผเขยนน�าเสนอ แตหลกการโดยภาพรวม Google ยงคง
ยดถอตามแนวทางเดมมาโดยตลอด
ดาวนโหลดและตดตงโปรแกรม Eclipse
โปรแกรม Eclipse เปนเครองมอพนฐานส�าหรบพฒนา Android App ซงมขนตอนการตดตงดงตอไปน
1. เขาสเวบไซต http://www.eclipse.org/downloads/ เพอดาวนโหลดโปรแกรม Eclipse
ไฟลดาวนโหลดทกไฟลทน�าเสนอในหนงสอเลมนอยในโฟลเดอร \Tools ใน CD-ROM ทแถม
มากบหนงสอเลมน
รปท 1-1แสดงการดาวนโหลดโปรแกรม Eclipse
กรอก URL1.1
คลก1.2
คลก1.3
ตวอยาง
ความรพนฐานการพฒนา Android App
บทท 1 เตรยมตวกอนพฒนา Android App 5
1part
จากรปท 1-2 ใหดบเบลคลกไฟล eclipse.exe เพอเปดโปรแกรม Eclipse
เมอใดกตามทผอานตองการเปดโปรแกรม Eclipse ใหมาทพาธทตดตงโปรแกรม Eclipse นเสมอ
2. เมอดาวนโหลดโปรแกรม Eclipse แลว ใหแตกไฟล zip ทไดไวในพาธตามทตองการ ในกรณน
ผเขยนแตกไฟลไวท C:\Android และจะถอวาพาธนคอ ทอยของโปรแกรม Eclipse ดวย
รปท 1-2แสดงรายการไฟลของโปรแกรม Eclipse
รปท 1-3แสดงการก�าหนดพาธทจดเกบโปรเจกต
พาธตดตงโปรแกรม Eclipse2
จากรปท 1-3 เมอเปดโปรแกรม Eclipse ขนมาครงแรกจะมการสอบถามวา ตองการเกบโปรเจกตไว
ทไหน ใหผอานเลอกพาธตามทตองการเกบโปรเจกต Android ไว
ตวอยาง
Android App Development
Basic Android Programming6
ดาวนโหลดและตดตง Android SDK
Android SDK (Android Software Development Kit) เปนเครองมอพนฐานส�าหรบพฒนา Android
App ซงมขนตอนการตดตงดงตอไปน
1. เขาสเวบไซต http://developer.android.com/sdk/index.html เพอดาวนโหลด Android SDK
ตามระบบปฏบตการทเราใชงานอย ในกรณนผเขยนเลอกเวอรชนท�างานบน Windows
2. ใหดบเบลไฟลทดาวนโหลดมาไดในขอ 1 ในทนชอ installer_r20.0.3-windows.exe หรอมชอตาม
เวอรชนทดาวนโหลดมาเพอเรมตนตดตง Android SDK
รปท 1-4แสดงการดาวนโหลด Android SDK
กรอก URL1.1
คลก1.2
คลก2.1
รปท 1-5แสดงการตดตง Android SDK
ตวอยาง
ความรพนฐานการพฒนา Android App
บทท 1 เตรยมตวกอนพฒนา Android App 7
1part
3. เรมตนการตดตง Android SDK โดยการเลอกเวอรชนของ Android ทตองการพฒนา ในทนเลอก
เวอรชน 4.0.3 ขนไป ซงในขนตอนนตองเชอมตอกบอนเทอรเนตอยดวย
รปท 1-5 (ตอ)แสดงการตดตง Android SDK
คลก2.2 คลก2.3
ส�าหรบขอบเขตของหนงสอเลมนผเขยนเลอกใช Android ตงแตเวอรชน 4.0.3 ขนไปเพราะ
วาในความเหนของผเขยน Android 4.0 ถอเปนเวอรชนทเปนจดเรมตนอยางแทจรง แตในกรณท
ผอานตองการพฒนา Android App ในเวอรชนทต�ากวา (2.x และ 3.x) สามารถเลอกไดตามตองการ
รปท 1-6แสดงรายการคอมโพเนนตตางๆ ของ Android SDK ทตดตง
เลอก 3.1
คลก3.4
ตวอยาง
ISBN 978-616-200-363-9
ตวอยาง