contents · ที่เราคุ นเคย และใช งานกันเป...

21
สารบัญ I บทที่ 1 เตรียมความพรอมกอนพัฒนา Android Apps ............................. 1 การดาวนโหลดและติดตั ้ง JAVA SDK ................................................................................ 2 การดาวนโหลดและติดตั ้งโปรแกรม Eclipse ........................................................................ 3 การดาวนโหลดและติดตั ้ง Android SDK ............................................................................ 4 การเปดโปรแกรม Eclipse ................................................................................................. 5 บทที่ 2 ความรูเบื้องตนในการพัฒนา Android Apps ............................... 7 ขั้นตอนการสรางโปรเจ็กตในโปรแกรม Eclipse ................................................................... 7 ตัวอยางการออกแบบสวนแสดงผลอยางงาย .................................................................... 11 การบันทึก Android Project ............................................................................................ 19 การเปด Android Project เดิม ......................................................................................... 21 การทดสอบรัน Android Project บน Android Emulator (AVD) .......................................... 23 การสราง Android Emulator ................................................................................. 23 ทดสอบการทํางานของ Android Apps .................................................................... 25 การสราง Android Emulator ใหตรงกับยี่หอและรุนในทองตลาด........................................ 27 การเตรียมไฟล apk ใหพรอมใชงานจริง ........................................................................... 29 การติดตั้งไฟล apk บนอุปกรณจริง .................................................................................. 32 บทที่ 3 การแจงเตือน ..................................................................... 37 การแสดงแถบขอความดวย Toast Notification ................................................................. 37 การปรับแตงการแจงเตือนแบบ Toast Notification ........................................................... 41 พื้นฐานการแสดงไดอะล็อกบ็อกซแบบ Alert..................................................................... 46 การแสดง Alert Dialog แบบมีการตรวจสอบปุมกด ........................................................... 49 การแจงเตือนแบบ Notification........................................................................................ 54 บทที่ 4 การสรางสวนแสดงผลแบบรายการดวย ListActivity ..................... 61 พื้นฐานการสรางสวนแสดงผลแบบรายการดวยคลาส ListActivity ...................................... 62 การสรางรายการใน ListActivity จากไฟล XML ................................................................. 65 การแสดงรูปภาพในสวนแสดงผลแบบรายการ ListActivity ................................................ 71 Contents

Upload: others

Post on 14-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

สารบญ I

บทท 1 เตรยมความพรอมกอนพฒนา Android Apps .............................1การดาวนโหลดและตดตง JAVA SDK ................................................................................2

การดาวนโหลดและตดตงโปรแกรม Eclipse ........................................................................3

การดาวนโหลดและตดตง Android SDK ............................................................................4

การเปดโปรแกรม Eclipse .................................................................................................5

บทท 2 ความรเบองตนในการพฒนา Android Apps ...............................7ขนตอนการสรางโปรเจกตในโปรแกรม Eclipse ...................................................................7

ตวอยางการออกแบบสวนแสดงผลอยางงาย ....................................................................11

การบนทก Android Project ............................................................................................19

การเปด Android Project เดม .........................................................................................21

การทดสอบรน Android Project บน Android Emulator (AVD) ..........................................23

การสราง Android Emulator .................................................................................23

ทดสอบการทางานของ Android Apps ....................................................................25

การสราง Android Emulator ใหตรงกบยหอและรนในทองตลาด ........................................27

การเตรยมไฟล apk ใหพรอมใชงานจรง ...........................................................................29

การตดตงไฟล apk บนอปกรณจรง ..................................................................................32

บทท 3 การแจงเตอน ..................................................................... 37การแสดงแถบขอความดวย Toast Notification .................................................................37

การปรบแตงการแจงเตอนแบบ Toast Notification ...........................................................41

พนฐานการแสดงไดอะลอกบอกซแบบ Alert .....................................................................46

การแสดง Alert Dialog แบบมการตรวจสอบปมกด ...........................................................49

การแจงเตอนแบบ Notification ........................................................................................54

บทท 4 การสรางสวนแสดงผลแบบรายการดวย ListActivity ..................... 61พนฐานการสรางสวนแสดงผลแบบรายการดวยคลาส ListActivity ......................................62

การสรางรายการใน ListActivity จากไฟล XML .................................................................65

การแสดงรปภาพในสวนแสดงผลแบบรายการ ListActivity ................................................71

Contents

Page 2: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

Andr

oid

Prog

ram

min

g

Professional Android ProgrammingII

บทท 5 การสราง Android Apps แบบหลายหนาจอ ...............................79พนฐานการสราง ListActivity แบบเปลยนสวนแสดงผลได ................................................79

การสรางสวนแสดงผลทม 2 Activity และปมเปลยนสวนแสดงผลไป-มา .............................84

การรบ-สงขอมลระหวาง Activity .....................................................................................96

บทท 6 พนฐานการทางานกบรปภาพ ................................................. 103พนฐานการแสดงรปภาพดวย ImageView ......................................................................103

การแสดงรปภาพและพาธไฟลจาก Gallery .....................................................................107

การแสดงรปภาพแบบ Gallery ดวย GridView.................................................................112

การสรางแกลอรดวย GridView ......................................................................................119

การวาดขอความลงในรปภาพและบนทกรปภาพ .............................................................124

บทท 7 ระบบเมนใน Android ......................................................... 135ทาความรจกกบระบบเมนใน Android Apps ...................................................................135

การสรางเมนแบบ Popup ดวยคลาส PopupMenu .........................................................140

การสรางเมนใหกบแถบ Action Bar ...............................................................................143

การใสรปภาพในเมนของ Action Bar .............................................................................146

การสรางเมนแชรขอมลระหวาง App .............................................................................149

บทท 8 การสรางสวนแสดงผลแบบรายการดวย ListView ...................... 157พนฐานการลงส ............................................................................................................157

การลงสแบบไลโทนส (Gradient Color) ..........................................................................160

พนฐานการสรางสวนแสดงผลแบบรายการดวย ListView ................................................164

พนฐานการลงสใน ListView แบบไลโทนส ......................................................................168

การสรางรายการแบบ 2 บรรทดและมรปกากบ...............................................................172

การคนหาในสวนแสดงผลแบบรายการ ...........................................................................183

บทท 9 Animation ..................................................................... 189การสรางขอความแบบตวเลอน (Marquee) .....................................................................189

แอนเมชนประเภทเคลอนยายตาแหนง ..........................................................................191

การทาแอนเมชนแบบ Fade-In กบรายการใน ListView ...................................................196

Page 3: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

สารบญ III

บทท 10 ทางานกบคลปวดโอ .......................................................... 201การเลนคลปวดโอดวย VideoView .................................................................................201

การเลนวดโอโดยอาศย App อนๆ.................................................................................204

การเลนคลปวดโอแบบมแถบควบคม .............................................................................208

การแสดงรปภาพและเลนคลปวดโอแบบมแถบควบคม ....................................................209

บทท 11 การใชงานกลอง .............................................................. 217การถายรปและการแสดงรปจากกลองดวยคลาส Intent ...................................................217

การถายและเลนคลปวดโอ ............................................................................................221

การใชงานกลองหนาทากระจกสองหนา .........................................................................227

การถายรปและ Crop รปภาพแบบ Instagram ................................................................233

บทท 12 การทดสอบ Android Apps บน VirtualBox ......................... 243การดาวนโหลด VirtualBox ............................................................................................244

การตดตง VirtualBox ....................................................................................................245

การกาหนดให Android ใน VirtualBox สามารถเชอมตอกบภายนอก ...............................249

ปญหาการใช Android ใน VirtualBox ............................................................................250

การรน Android ใน VirtualBox ......................................................................................250

การกาหนดขนาดสวนแสดงผลของ Android ใน VirtualBox .............................................251

การเชอมตอ Android ใน VirtualBox เขากบโปรแกรม Eclipse ........................................252

การกาหนดใหโปรเจกตของ Android ทดสอบดวย .........................................................254

Android ใน VirtualBox .................................................................................................254

การทดสอบรนโปรเจกตดวย Android ใน VirtualBox.......................................................256

การแกไขปญหากรณไมสามารถรนโปรเจกต ...................................................................257

การแกไขปญหาไมสามารถตรวจสอบการด LAN .............................................................259

บทท 13 การใชงานแผนท (Google Maps Android V2)..................... 261พนฐานการใชงานระบบแผนท ......................................................................................262

การขอใชบรการแผนท Google Maps Android V2 .........................................................266

การแกไขโปรเจกตเพอทดสอบระบบแผนท .....................................................................270

การปกหมดสถานท (Marker) ในแผนท ..........................................................................272

การกาหนดประเภทของแผนท .......................................................................................276

การแสดงตาแหนงปจจบนของเรา ..................................................................................278

การซมในแผนทตามตาแหนงทเราสนใจ .........................................................................279

การปกหมด, ลบ และเคลอนยายหมดดวยวธการสมผส ..................................................282

Page 4: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

Andr

oid

Prog

ram

min

g

Professional Android ProgrammingIV

บทท 14 การทางานรวมกบ Youtube .............................................. 287การดาวนโหลด Youtube API ........................................................................................287

การตดตง Youtube API ในโปรแกรม Eclipse .................................................................288

การขอเปดบรการ Youtube และ Youtube API key ........................................................291

การสรางตวเลนคลปวดโอจาก Youtube ใน Android Apps .............................................294

วธการสรางรายการวดโอ (Playlists) บนเวบ Youtube .....................................................297

การสรางตวเลนรายการวดโอในเวบ Youtube .................................................................300

บทท 15 ทางานกบ Facebook ....................................................... 303การดาวนโหลด Facebook SDK ....................................................................................303

การสราง Facebook Apps เพอเชอมตอกบ Android Apps ............................................304

การกาหนดให Android Project อางอง Facebook SDK .................................................306

การอางอง Facebook SDK ใหกบโปรเจกต Android ......................................................309

การระบ App ID ของ Facebook ใหกบโปรเจกต Android ...............................................310

การสรางรหส Key Hashes ใหกบ Facebook .................................................................311

การกาหนดสทธใหกบ Facebook Apps .........................................................................315

การสราง Android Apps แบบ Facebook Login ............................................................315

การทา Android Apps ทสามารถโพสตขอความใน Facebook .......................................323

การโพสตรปภาพใน Facebook .....................................................................................332

ภาคผนวก.............................................................................340ปญหาของ Eclipse และ Android SDK รนเกากบ Android 4.4.x ขนไป ..........................340

โครงสรางโปรเจกต Android แบบใหมของ Eclipse .........................................................342

Index .................................................................................343

Page 5: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

เตรยมความพรอมกอนพฒนา Android Apps

1

ในปจจบนคงไมมใครกลาปฏเสธไดวา การพฒนา Android Apps มบทบาทเพมมากขนเรอยๆ

อกแพลตฟอรมหนง หลายคนใชอปกรณมอถอ, แทบแลตทากจกรรมตางๆ ไมวาจะเปนการแชท, สงเมล,

เลนเกม ดคลปวดโอ เปนตน

บอยครงทเราใชงาน App ตางๆ ซงมอยมากมายหลายประเภท แลวเกดความคดทวา เราอยาก

สราง App ทมการทางานแบบนบาง, มขนตอนทเปนมตรตอผใชงาน, มสวนแสดงผลทรองรบความตองการ

ของเรา ณ เวลานนๆ ไดอยางลงตว

หนงสอเลมนเปนการนาเสนอเนอหาการพฒนา Android Apps ดวย Eclipse เรมตนตงแต

พนฐานการสราง App งายๆ เรยงลาดบไปจนกระทงถงการนาเสนอเทคนคตางๆ ทเหนใน App มาตรฐาน

ทเราคนเคย และใชงานกนเปนอยางด ไมวาจะเปน Google Map, Facebook, Instagram, Youtube เปนตน

ผอานจะไดศกษาวา เทคนคและการทางานบางสวนของ App มาตรฐานเหลาน มขนตอน มทมา

และมวธการอยางไร โดยทผเขยนตงโจทยของหนงสอเลมนไววา “เปนเนอหาทใชงานไดจรง”

รปภาพแสดงผลการทางานทลงในหนงสอเลมน โดยสวนใหญผเขยนทดสอบในเครองจรง เพอ

ใหคณเหนสวนแสดงผลทแทจรง

Page 6: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

Andr

oid

Prog

ram

min

g

Professional Android Programming2

การดาวนโหลดและตดตง JAVA SDKเรมตนใหผอานไปทเวบไซต http://www.oracle.com/technetwork/java/javase/downloads/index.

html ดงรปท 1-1

รปท 1-1

แสดงการดาวนโหลด Java SDK

กรอก URL1

คลก2

คลก3

จากรปท 1-1 ใหผอานดาวนโหลด Java SDK ตามระบบปฏบตการของผอาน ในกรณนผเขยน

ดาวนโหลดแบบ Windows 64 บต (x64) จากนนขอใหผอานตดตง Java SDK ตามขนตอนทปรากฏขนมาจน

เสรจสมบรณ

Page 7: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

บทท 1 เตรยมความพรอมกอนพฒนา Android Apps 3

การดาวนโหลดและตดตงโปรแกรม Eclipseการพฒนา Android Apps ผเขยนเลอกใชโปรแกรม Eclipse เปนหลก มขนตอนการดาวนโหลดและ

ตดตง ดงน

1. ใหผอานไปทเวบไซต http://developer.android.com/sdk/index.html แลวคลกปม

เพอดาวนโหลดโปรแกรม Eclipse แบบ Bundle (กงสาเรจรป)

2. ใหผอานเลอกดาวนโหลดโปรแกรม Eclipse ตามระบบปฏบตการทผอานใชงาน ในกรณนผเขยน

เลอกแบบ 64 บต

กรอก URL1.1รปท 1-2

แสดงการดาวนโหลดโปรแกรม Eclipse แบบ Bundle

คลก1.2

เลอก 2.1เลอก2.2

คลก2.3

Page 8: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

Andr

oid

Prog

ram

min

g

Professional Android Programming4

จากรปท 1-3 หลงจากทผอานดาวนโหลดเสรจแลวขอใหขยายไฟล zip ทไดมา ในกรณนผเขยน

เกบไวทพาธ D:\

การดาวนโหลดและตดตง Android SDKขนตอนตอมาเปนการดาวนโหลดและตดตง Android SDK โดยการดบเบลคลกท SDK Manager.exe

จะปรากฏไดอะลอกบอกซ Android SDK Manager และใหผอานเลอกการตดตงดงรปท 1-4

3. ไดไฟลดงรป

รปท 1-3

แสดงการดาวนโหลด Eclipse แบบ 64 บต

รปท 1-4

แสดงการดาวนโหลดและตดตง Android SDK

จากรปท 1-4 ผอานสามารถเลอกดาวนโหลด Android SDK ตามเวอรชนทผอานสนใจไดอยางอสระ

โดยการคลกเลอกรายการใหมเครองหมายถก จากนนคลกปม สวนรายการทมคาวา Installed

หมายถง มการตดตงในเครองของผอานแลว

เลอก 3

เลอก 5

เลอก 6

เลอก 2

เลอก 1

เลอก8

เลอก 9

เลอก 4

คลก10

เลอก7

Page 9: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

บทท 1 เตรยมความพรอมกอนพฒนา Android Apps 5

ในขนตนนผเขยนแนะนาวา การดาวนโหลดและตดตง Android SDK ในแตละเวอรชนควรทจะ

ประกอบดวยรายการ SDK Platform, ARM EABI v** System Image และ Google APIs โดยพบวา ณ เวลา

ทเรยบเรยงหนงสอเลมนสามารถพฒนาไดถง Android เวอรชน 4.4 (KitKat)

ในกรณนผเขยนเลอกดาวนโหลดและตดตง Android SDK เวอรชน 4.4, 4.2 และเวอรชน 2.2 เพอ

พฒนา Android Apps ตงแตเวอรชน 2.2 ถงเวอรชน 4.4

เมอใดกตามท Android มเวอรชนใหมออกมา ผอานสามารถดาวนโหลด Android SDK เวอรชน

ใหมเพมเตมไดตามทตองการได

ในกรณทตองการพฒนา Android Apps ใหครอบคลมเวอรชน 4.4.x ขนไป ผเขยนแยกอธบาย

รายละเอยดในภาคผนวก

การเปดโปรแกรม Eclipseในกรณทผอานตองการเปดโปรแกรม Eclipse ใหผอานเขามาทโฟลเดอร eclipse ดบเบลคลกไฟล

eclipse.exe ดงรปท 1-5

สรปทายบทเนอหาในบทนเปนเพยงการเตรยมสภาพแวดลอมใหพรอมกอนพฒนา Android Apps ดวย Eclipse

โดยทผเขยนจะนาเสนอแยกตามหวขอในแตละบทตอไป

รปท 1-5

แสดงวธการเปดโปรแกรม Eclipse

Page 10: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

ความรเบองตนในการพฒนา Android Apps

2

หลงจากทผอานเตรยมสภาพแวดลอมในเครองใหพรอมแลวกจะเขาสเนอหาการพฒนา Android

App โดยทผเขยนจะเรมลาดบจากเนอหาทงายทสดกอน เพอเปนการปพนฐานกอนเขาสการพฒนา App ท

มการเรยกใชงานฟเจอรตางๆ ของ Android SDK เพมมากขน

ขนตอนการสรางโปรเจกตในโปรแกรม Eclipseเรมตนเรากตองสรางโปรเจกตสาหรบใชในการพฒนา Android App กอน โดยมขนตอนงายๆ ดงน

1. ใหผอานเปดโปรแกรม Eclipse ขนมา แลวคลกเมน File > Project ... > Android > Android

Appslication Project เพอเรมตนสรางโปรเจกตวางๆ ขนมา ดงรปท 2-1

รปท 2-1

แสดงการเรมตนสราง Android Project แบบวางๆ ขนมา

เลอก1.1

เลอก1.2

คลก1.3

Page 11: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

Andr

oid

Prog

ram

min

g

Professional Android Programming8

2. เขาสขนตอนการกาหนดรายละเอยดของ Android Apps ในขนตน โดยท� ชอง Application Name หมายถง ชอ App ของเรา ในกรณนคอ HelloWorld� ชอง Project Name หมายถง ชอ Android Project ปจจบนมขอแนะนาวา ควรมชอเดยว

กบ App� ชอง Package Name หมายถง ชอ Package ของ Android Project ปจจบน มขอแนะนา

ใหใชชอท Eclipse แนะนา

� ชอง Minimum Required SDK ในกรณทผอานคาดวา Android Apps ของเราครอบคลม

ระบบปฏบตการ Android หลายเวอรชน ขอใหผอานระบเวอรชนของระบบปฏบต Android

ทตาสด ทสามารถรน Android Apps ของเราไดกจะทาให App ของเรารองรบหลายเวอรชน

นนเอง� ชอง Target SDK หมายถง เวอรชนของระบบปฏบตการ Android ทเปนเปาหมายหลกให

App ของเรารน� ชอง Compile With หมายถง ผอานตองการทดสอบรนและคอมไพลโปรเจกตปจจบนดวย

เวอรชนใด

รปท 2-2

แสดงการกาหนดรายละเอยดขนตนใหกบ Android Project ปจจบน

ผอานสามารถระบเวอรชนทรองรบไดถง Android 4.4 (KitKat) ในโลกของความเปนจรง Android

Apps ทสรางขนมา ควรทจะรองรบและสามารถตดตงบนระบบปฏบตการ Android หลายเวอรชนมาก

ทสดเทาทเปนไปได ขนอยกบวาในโปรเจกตปจจบนของเรา เรยกใชฟเจอรใดบางของ Android SDK ก

จะมขอกาหนดแตกตางกนไปตามแตละเวอรชน

กรอกขอมล2.1

เลอก2.2

เลอก2.3

คลก2.5

คลก2.4

Page 12: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

บทท 2 ความรเบองตนในการพฒนา Android Apps 9

3. เขาสขนตอนการปรบแตง Android Apps ปจจบน ใหผอานคลกแทบ Clipart และคลกปม

เพอเลอกไอคอนสาเรจรปทมากบ Eclipse ใหกบโปรเจกตปจจบน ดงรปท 2-3

4. ผอานสามารถเลอกสของไอคอนได โดยการเลอกสท Foreground Color ดงรปท 2-4

รปท 2-3

แสดงการเลอกไอคอนสาเรจรปใหกบ Android Apps ปจจบน

รปท 2-4

แสดงการเลอกสของไอคอน

คลก3.1

คลก3.2

เลอก3.3

เลอก4.2

คลก4.1

คลก4.3

Page 13: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

Andr

oid

Prog

ram

min

g

Professional Android Programming10

5. การเลอกประเภทของ App ทตองการสรางขนมา ในขนตนนเราตองการ App ทมสวนแสดงผล

แบบหนาจอเดยว จงเลอกแบบ Blank Activity

6. กาหนดรายละเอยดขนตนของประเภท App ปจจบนทนาสนใจคอ � ชอง Activity Name หมายถง ชอสวนแสดงผลทจะปรากฏขนมาเปนลาดบแรก ในกรณน

ชอวา MainActivity� ชอง Layout Name หมายถง Layout ของสวนแสดงผลปจจบนคอ ไฟลทชอวา activity_main

(.xml) ทเกบอยในโฟลเดอร layout ของโปรเจกตปจจบน

รปท 2-5

แสดงการเลอกประเภท App ทตองการสรางขนมา

รปท 2-6

แสดงการกาหนดชอ App ปจจบนวา Hello World

เลอก5.1

เลอก5.2

คลก5.3

คลก6.1

คลก6.2

Page 14: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

บทท 2 ความรเบองตนในการพฒนา Android Apps 11

ณ จดนโปรแกรม Eclipse จะสราง Android Project วางๆ ขนมาใหเรยบรอยแลว สวนแสดงผล

หลกทปรากฏขนมาเปนลาดบแรก เกดจากไฟลทชอวา fragment_main.xml เกบอยในโฟลเดอร \res\layout

ในปจจบน Android Apps กาหนดใหใช Layout แบบ fragment หมายถง การสรางสวนแสดงผลท

สามารถแสดงผลไดทงมอถอและแทบเลตในคราวเดยวกนอยในความรบผดชอบของไฟล fragment_main.xml

(\res\layout\fragment_main.xml)

ตวอยางการออกแบบสวนแสดงผลอยางงายเมอสรางโปรเจกตเรยบรอยแลว ตอไปกเปนขนตอนการออกแบบสวนแสดงผลของ App โดยแตละ

ไฟลมการทางานแตกตางกนไป ซงมรายละเอยดดงน

1. เรมตนใหผอานลบขอความ Hello world ทมากบโปรเจกตออก จากนนเปดไฟล strings.xml ทพาธ

\res\values ของโปรเจกตปจจบน เพอกาหนดขอความทตองการใชงานกอน เพราะวา Android

Project ถอวา ขอความ (string) เปนทรพยากรประเภทหนงของโปรเจกตปจจบน ดงรปท 2-7

รปท 2-6 (ตอ)

แสดงการกาหนดชอ App ปจจบนวา Hello World

รปท 2-7

แสดงไฟล strings.xml ในโฟลเดอร \res\values

Page 15: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

Andr

oid

Prog

ram

min

g

Professional Android Programming12

2. โปรเจกตปจจบนตองการใช 2 ขอความ ใหผอานคลกปม เพอเพมขอความใหมเขามา

ในโปรเจกตปจจบน

ขอความทชอวา TextView1 (ชอง Name) ทาหนาทเกบขอความ “TextView1” (ชอง Value*)

3. ใหผอานเพมอก 1 ขอความตงชอวา Button1 ดงรปท 2-9

รปท 2-8

แสดงการเพมขอความทชอวา TextView1

รปท 2-8 (ตอ)

แสดงการเพมขอความทชอวา TextView1

รปท 2-9

แสดงการเพมขอความทชอวา Button1

เลอก2.2

ขอความทเพมเขามา2.4

คลก2.3

คลก2.1

จากรปท 2-9 ขอความทชอวา Button1 (ชอง Name) ทาหนาทเกบขอความ “Button1” (ชอง Value*)

ณ จดนในโปรเจกตปจจบนของเรามขอความใหม 2 ขอความพรอมใหเรยกใชงานแลว

Page 16: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

บทท 2 ความรเบองตนในการพฒนา Android Apps 13

รปท 2-10

แสดงการแกไขโคดในไฟล Main-Activity.java

รปท 2-11

แสดงการกาหนด Layout แบบเรยงตามแนวตง

4. ตวอยางทนาเสนอในหนงสอเลมน ไมไดใชฟเจอร fragment ดงนน ขอใหผอานลบไฟล fragment_

main.xml ออกจากโฟลเดอร \res\layout จากนนแกไขโคดในไฟล MainActivity.java

จากรปท 2-10 ผเขยนกาหนดใหโปรเจกตกลบมาอานโครงสรางสวนแสดงผลจากไฟล activity_main

5. กาหนด Layout ใหกบสวนแสดงผล activity_main.xml (\res\layout\activity_main.xml) ใน

ขนตนนกาหนดใหใช Layout แบบเรยงตามแนวตง

ดบเบลคลก5.1

คลกขวา5.2

เลอก5.3

เลอก5.4

คลก5.5

Page 17: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

Andr

oid

Prog

ram

min

g

Professional Android Programming14

6. ใหผอานออกแบบดงรปท 2-12

จากรปท 2-12 เปนการใชงาน widget ประเภท TextView แบบ Large (ทาหนาทรบหรอแสดงขอความ

ทมขนาดตวอกษรใหญกวาปกต) และ widget ประเภท Button (ทาหนาทเปนปมกดจากการสมผสหนาจอ)

7. เราจะกาหนดให widget ประเภท TextView ใชขอความทชอวา TextView1 และ widget ประเภท

Button ใชขอความทชอวา Button1 ทเราสรางไวในขนตอนทแลว ดงรป

รปท 2-12

สวนแสดงผลในขณะออกแบบ

รปท 2-13

แสดงการกาหนดให widget ประเภท TextView ใชขอความทชอวา TextView1

เลอก7.1

เลอก7.3

คลก7.4

เลอก 7.27.2

Page 18: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

บทท 2 ความรเบองตนในการพฒนา Android Apps 15

จากรปท 2-13 ใหกาหนดทคณสมบต Text ในหนาตาง Properties

รปท 2-14

แสดงการกาหนดให widget ประเภท Button ใชขอความทชอวา Button1

รปท 2-15

แสดงโครงสราง XML ของสวนแสดงผลปจจบน

เปนการกาหนดให widget ทง 2 ตวใชขอความทมาจากทรพยากรของโปรเจกตปจจบน

8. ผอานสามารถคลกทแทบ activity_main.xml เพอแสดงสวนแสดงผลแบบโครงสราง XML ดงรป

ท 2-15

เลอก7.5

เลอก7.7

คลก7.8

เลอก 7.67.6

Page 19: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

Andr

oid

Prog

ram

min

g

Professional Android Programming16

ในขณะทออกแบบสวนแสดงผล โปรแกรม Eclipse จะสรางสครปต XML เหลานใหโดยอตโนมต

หมายความวา สวนแสดงผลใน Android Apps ใชโครงสรางของ XML เขามาทาหนาทรบผดชอบสวนแสดงผล

ใหนนเอง

ในทางกลบกนเราสามารถแกไขสครปต XML เหลานเพอแกไขสวนแสดงผลไดเชนกน

สครปต XML ท 2-1 Hello World Apps (\res\layout\activity_main.xml) <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.helloworld.MainActivity" tools:ignore="MergeRootFrame" >

<TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/TextView1" android:textAppearance="?android:attr/textAppearanceLarge" /> <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/Button1" /></LinearLayout>

9. เขยนโคด JAVA ในไฟล MainActivity.java ดงตอไปน

โคด JAVA ท 2-1 Hello World Apps (\src\com.example.hello.android\MainActivity.java)package com.example.helloworld;

import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.TextView;

public class MainActivity extends ActionBarActivity implements android.view.View.OnClickLis-tener {

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

Button cmd = (Button) findViewById(R.id.button1); cmd.setOnClickListener(this); }

Page 20: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

บทท 2 ความรเบองตนในการพฒนา Android Apps 17

public void onClick(View v) { TextView tv =(TextView) findViewById(R.id.textView1); tv.setText(“Hello Android”); }

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

@Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}

10. ทดสอบการทางานไดผลลพธดงรป

จากรปท 2-16 เมอคลกปม Button1 ชองรบขอความจะแสดงขอความ “Hello Android” ตามทเรา

ตองการแลว

รปท 2-16

ผลการรนตวอยางท 2-1

Page 21: Contents · ที่เราคุ นเคย และใช งานกันเป นอย างดี ไม ว าจะเป น Google Map, Facebook, Instagram, Youtube

Andr

oid

Prog

ram

min

g

Professional Android Programming18

อธบายการทางานของโคด1. เรมตนแพคเกจปจจบนมชอวา com.example.hello.android เกดขนในขณะทสรางโปรเจกตขน

มาในโปรแกรม Eclipse จากนนใหระบไลบรารตอไปนใหครบถวน

\src\com.example.hello.android\MainActivity.javapackage com.example.helloworld;

import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.TextView;

2. โปรเจกตปจจบนถกกาหนดใหมสวนแสดงผลแบบหนาจอเดยว ม Activity เดยวชอวาคลาส Main-

Activity.java ใหผอานกาหนดใหมรองรบ (implements) เหตการณคลกดวย (View.OnClickListener)

\src\com.example.hello.android\MainActivity.javapublic class MainActivity extends ActionBarActivity implements android.view.View.OnClickLis-tener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

ใน MainActivity เหตการณ onCreate() จะเกดขนมาเปนลาดบแรก (เปนเหตการณทเกดขนกอน

แสดงผลใหผใชเหน) ผอานตองสรางสวนแสดงผลใน App ใหพรอมใชงานเสยกอนในเหตการณน

โดยทโปรแกรม Eclipse จะกาหนดใหใชสวนแสดงผลทชอวา activity_main (อยในไฟล activity_main.

xml) ผานทางเมธอดทชอวา setContentView() ผานทางคลาส R

คลาส R ถกสรางขนมาโดยอตโนมตทาหนาทอางองสงตางๆ ทอยในโปรเจกตปจจบน ในกรณน

เปนการอางองไฟลททาหนาทสรางสวนแสดงผลจงระบวา R.layout.activity_main

3. ใหสรางเหตการณ Click() ขนมารองรบการกดปม Button ทชอวา button1 โดยทใชเมธอดทชอ

วา findViewById() ทาหนาทคนหาออบเจกตทชอวา button1 ผานทางคลาส R.id ทอยในสวน

แสดงผล ผลการคนหาทไดใหเกบไวในตวแปรออบเจกต Button ทชอวา cmd กอน

จากนนสรางเหตการณ Click() ใหกบตวแปรออบเจกต cmd ผานทางเมธอด setOnClickListener()

ใหกบสวนแสดงผลปจจบน (this)

\src\com.example.hello.android\MainActivity.java Button cmd = (Button) findViewById(R.id.button1); cmd.setOnClickListener(this); }

4. ทเหตการณ onClick() สรางตวแปรออบเจกต TextView ทชอวา tv ขนมารบคาจากการคนหา

ออบเจกตจากสวนแสดงผลทชอวา textView1 กาหนดขอความผานทางเมธอด setText()