อบรมแอนดรอยด กับ มาสเตอร อึง่
ทีน่ี พอเราเปด ABC_Text ตวั Apps ของเราก็จะแสดงผลภาษาไทย แบบนี้ แลวครบั
50
อบรมเขียน Coding Android Application กบั มาสเตอร อง่ึ http://androidthai.in.th
อบรมแอนดรอยด กบั มาสเตอร อ่ึง
การทําแอพทม่ี หี ลายๆ Activity
จากหวั ขอเลยครบั เดย๋ี วเราจะมาเรียนรู การทําแอพแอนดรอยด ทม่ี ีหลายๆ Activity ครับ โดยเราจะทาํ แอพชือ่
ManyActivity โดยมี Activity แรกแสดงผลเปน ListView ในแตละคลิกท่ี List จะพาไปท่ี
1. Go To Website เมอื่ ทําการคลิก ใหไ ปเปด เว็บไซด
2. EditText Activity เรียนรู การใชง าน EditText Widget และ เขยี นโคด การ Get Value
3. Spinner Activity เรยี นรู การใชง าน Spinner Widget และ เขียนโคด การ Get Value
4. SeekBar Activity เรยี นรู การใชง าน SeekBar Widget และ เขยี นโคดการ Get Value
5. RadioButton Activity เรยี นรู การใชง าน RadioButton Widget และ เขยี นโคดการ Get Value
เปด Android Studio เพอื่ ทํา WorkShop ManyActivity
New Project ขึ้นมาใหม เลยครบั
51
อบรมเขียน Coding Android Application กับ มาสเตอร องึ่ http://androidthai.in.th
อบรมแอนดรอยด กับ มาสเตอร องึ่
ไดมาละ แอพ ManyActivity
ที่ activity_main.xml ใหล บ Relative Layout ออกและ สราง Linear Layout แทน
สรา ง Android resource directory ที่ชอื่ วา drawable เพอื่ เก็บภาพ
52
อบรมเขียน Coding Android Application กับ มาสเตอร อ่ึง http://androidthai.in.th
อบรมแอนดรอยด กับ มาสเตอร อึง่
นํารูปท่ีตองการใชไ ปเก็บไวท ่ี drawable และ ออกแบบ User Ingerface ใหไดแบบนี้
หัวใจการทํา ListView กค็ อื การท่เี ราตอ งรวู า ตําแหนงของ TextView Widget ตวไหนใหแสดงแบบ ListView
โดยการกำหนด id ใหก บั Widget
53
อบรมเขียน Coding Android Application กับ มาสเตอร องึ่ http://androidthai.in.th
อบรมแอนดรอยด กบั มาสเตอร อึง่
การสรา ง ListItem ดว ย String Array
ในการสราง และ จัดการ จาํ นวนหัวขอ ของ ListVew มาสเตอร ชอบ เทคนกิ สราง item ไวใน String Array
แบบนค้ี รับ
Create Values Resource File ทชี่ อื่ วา my_list.xml
Code ภายใน my_list.xml
54
อบรมเขียน Coding Android Application กับ มาสเตอร อ่งึ http://androidthai.in.th
อบรมแอนดรอยด กับ มาสเตอร อ่ึง
การโคด ดิง้ แอนดรอยด แบบ ListView
เปด MainActivity.java หรือ คลาสของเราออกมาเลยครบั
ประกาศตัวแปร แบบ array ท่ชี ่อื วา strListView มีชนดิ ขอ มูลแบบ String
ใหค ลาส Extends ListActivity และ อยา ลืม Comment ที่ SetContentView ดวยครับ
GetResource จาก String-Array ไปทีต่ วั แปร ทเี่ ราประกาศ 55
อบรมเขยี น Coding Android Application กบั มาสเตอร อึ่ง http://androidthai.in.th
อบรมแอนดรอยด กับ มาสเตอร อึง่
สราง ArrayAdapter สําหรบั นาํ คาทอี่ ยใู นตัวแปร ท่เี ราประกาศ ไปทต่ี ําแหนง ทเ่ี ราตองการใหปรากฏ บน ListView
ลองทดสอบโคด ที่ Emulator นา จะไดแ บบนี้
การทำ OnListItemClick ให้กับ ListView 56
อบรมเขียน Coding Android Application กบั มาสเตอร อึ่ง http://androidthai.in.th
อบรมแอนดรอยด กับ มาสเตอร อง่ึ
ในการกาํ หนด ให การคลกิ ที่ List ตางๆ เกดิ การ Active เขาเรยี กการทํา OnListItemClick
ใหทําการ Override Method
ทำการมองหา OnListItemClick
จะไดเ มธอด แบบน้ี
มาสเตอร ใช Switch Case get คา position จากการคลิก แบบน้ี
57
อบรมเขยี น Coding Android Application กบั มาสเตอร อึ่ง http://androidthai.in.th
อบรมแอนดรอยด กับ มาสเตอร อง่ึ
Intent Class เขาใชก ันอยา งไร?
Intent Class เปน คลาส ที่ แอนดรอยด เตรยี มไวให Dev. ทาํ การสบื ทอดไปใช ทาํ หนาท่ี
• เครื่อนยา ยการทํางาน ระหวาง Activity กบั Activity
• หรือ Activity กับ Server ของแอพตวั อน่ื (อยา งตวั อยา งจะใหไ ปเปดเวบ็ โซด ท่ีเปน บรกิ ารของ Browser
ครบั )
การใช Intent ใหไ ปเปด เว็บโซด เม่อื เกดิ การคลกิ
เนอ่ี งดว ยเรามกี ารกําหนด Switch Case ไว 5 เหตตกุ ารณ มาสเตอร จะประการตวั แปรคลาส มีการเขา ถึง Private
คอื ให เมธอดทุกอนั ทอ่ี ยูใ นคลาส สามารถใช ตวั แปรน้ไี ดแ บบนี้
สรางการสบื ทอด หรือ Herniate จาก คลาส Intent
ในการนํามาใชงาน มาสเตอร ไมสามารถนํามาใชตรงๆ ได ตอง สบื ทอด เขา มาเปน Object แบบนี้
58
อบรมเขียน Coding Android Application กบั มาสเตอร อ่งึ http://androidthai.in.th
อบรมแอนดรอยด กับ มาสเตอร อึ่ง
ลองทดสอบโคดแอนดรอยด ท่ีเขยี นได บน Emulator
ลองคลกิ ท่ี my Website ท่ีเปน List ที่มคี า Position เทา กบั 0 มือถอื จะทําการ Intent ไปเปด WebView ตาม
UrlData ท่ีไดท ําการ ระบุทไี่ ปไว
การสราง Activity จาก Android Component
ในการทาํ แอพใหส มบูรณ ตอง มีหลาย Activity แลว เราจะทําอยางไร ? ให สามารถสรา ง Activity ได มาสเตอร
ชอบ การสรางจาก Android Component แบบน้ี
59
อบรมเขยี น Coding Android Application กับ มาสเตอร อ่งึ http://androidthai.in.th
อบรมแอนดรอยด กับ มาสเตอร อ่งึ
การสราง Layout Resource File
การที่จะเปน Activity จะมีแคค ลาสอยางเดียวไมได ตอ งมี xml ทค่ี วบคมุ Layout ดว ย อยา งนั้นเรามาลองสรางกนั
ออกแบบ UI ใหไดแบบนี้
กําหนด เมธอดที่จะทาํ ถามีการ คลิกปุม
60
อบรมเขียน Coding Android Application กับ มาสเตอร อ่งึ http://androidthai.in.th
อบรมแอนดรอยด กับ มาสเตอร อึ่ง
การกำหนด คลาส Activity กับ Layout
เราจะใชคําสัง่ SetContentView ในการ ผูกความสมั พนั ธ ระหวา งคลาส ที่เราสรา ง และ Layout ทเ่ี ราออกแบบ ไปท่ี
คลาส EditTextActivity.java ทเี่ ราสรา งข้นึ เพม่ิ คําสัง่ น้ไี ปที่เมธอด onCreate
สราง Intent ไปท่ี EditTextActivity.java คลาส
กลับมาท่ี MainActivity.java จำ Switch Case ในเงื่อนไขที่ position = 1 เขยี น Intent ไป EditTextActivity.java
แบบน้ีครบั
ลองทดสอบโคด ทไ่ี ด ดวย Emulator โดย ลองคลกิ ที่ Edit Text ดูซิวา ไปทอี ีก Activity หนึง่ ไดหรือเปลา ? 61
อบรมเขยี น Coding Android Application กับ มาสเตอร อ่ึง http://androidthai.in.th
อบรมแอนดรอยด กบั มาสเตอร อ่ึง
การ SetOnClickListener จากการกำหนด onClick ของ xml
จำตอนเรากำหนด onClick ทไ่ี ฟร xml ท่ีควบคมุ Layout ไดไหม ? เราจะสรา ง เมธอด myEditText แบบนี้
เม่อื มกี ารคลิกที่ ปุม Edit Text เมธอด myEditText จะเร่ิมทาํ งาน
62
อบรมเขยี น Coding Android Application กบั มาสเตอร องึ่ http://androidthai.in.th
อบรมแอนดรอยด กับ มาสเตอร อ่ึง
Declaration & Initial Widget ซะใหเรยี บรอ ย
Declaration
Initial Widget
กําหนดให Get Value จาก Edit Text
63
อบรมเขียน Coding Android Application กบั มาสเตอร อ่งึ http://androidthai.in.th
อบรมแอนดรอยด กับ มาสเตอร อ่งึ
การทำ Alert Dialog
เดีย๋ วเราจะใหแสดง ผลของคา strTittle, strMessage บน Alert Dialog กัน สรา ง คลาส ShowMyDialog เปลา ๆ
เลยครบั
และตามดว ยการสรางเมธอด MyDialog โดยมี parameter แบบนี้
Declaration และ สืบทอด Object ซะ
กำหนด Object objAlertDialog ในเมธอด 64
อบรมเขยี น Coding Android Application กบั มาสเตอร อง่ึ http://androidthai.in.th
อบรมแอนดรอยด กับ มาสเตอร อึง่
กลับมาท่ี EditTextActivity.java ใหป ระกาศ Object เพ่ือสืบทอดมาใชงาน
และสง คา strTittle, strMessage แบบนี้
65
อบรมเขยี น Coding Android Application กบั มาสเตอร อ่งึ http://androidthai.in.th
อบรมแอนดรอยด กับ มาสเตอร อ่งึ
ลองทดสอบโคด ท่ีแสดง AlertDialog
มาสเตอร ลองทดสอบโดยการ พิมพ Android Thai และ ลองคลิก Edit Text ถาทุกอยางถกู ตอง นาจะไดผลแบบนี้
Spinner Widget
ในการอาํ นวยความสะดวกให user ในการกรอก ขอมลู ใหเรา บางครัง้ เราจะไมใช Edit Text ท้ังหมด เราจะมีการให
Drop Dow ให user เลอื ก เรามาทํางานกัน สรา ง Activity, Layout สําหรบั Spinner ไดเ ลยครบั (มาสเตอร
จะไมเ ขา รายละเอียด นะ เพราะสามารถดไู ด จากตอนทํา Edit Text)
66
อบรมเขยี น Coding Android Application กับ มาสเตอร อ่ึง http://androidthai.in.th
อบรมแอนดรอยด กับ มาสเตอร อึ่ง
กําหนด เมธอด ตอนคลิกที่ onClick
พรอ มท้งั SetContentView ในคลาสใหม ท่ี Create ขึ่นมาดว ย
กำหนดการ Intent ไปที่ SpinnerActivity.java
จําไดท ี่ MainActivity.java จะมี ตอนเราทาํ Switch Case Stament ไว ท่ตี รง position = 2 ให Intent ไปท่ี
SpinnerActivity.java แบบนี้ และ ทดสอบโคด วา Intent ไป SpinnerActivity.java ไดไหม ?
67
อบรมเขยี น Coding Android Application กับ มาสเตอร อง่ึ http://androidthai.in.th
อบรมแอนดรอยด กับ มาสเตอร อ่ึง
การ Set Up Spinner
เร่มิ ตนจากการเราตอ งมี หัวขอ ทเ่ี ราจะให ปรากฏใน Spinner จำ my_list.xml ทเ่ี ราเก็บ String Array ของ List View
ไดใ ชไหม ? เราจะเพมิ่ String Array เพมิ่ สําหรับ หัวขอ List Spinner แบบนี้ โดย เพิม่ โคดทางดา นขวาเขาไป
Declaration และ Initial Widget ใหกับ Spinner
68
อบรมเขียน Coding Android Application กบั มาสเตอร อึง่ http://androidthai.in.th
อบรมแอนดรอยด กบั มาสเตอร อ่ึง
ประกาศตวั แปร Array
GetResource ใหกบั ตัวแปร Array พรอ มสราง Adapter
ลองทดสอบโคด Spinner
69
อบรมเขยี น Coding Android Application กับ มาสเตอร อง่ึ http://androidthai.in.th
อบรมแอนดรอยด กับ มาสเตอร อึ่ง
SetOnItemSelectedListener ใหกบั Spinner
การทาํ ให สงิ่ ทีเ่ ราเลอื กบน Spinner มผี ล คือการทาํ SetOnItemSelectedListener เรม่ิ จากการประกาศตัวแปรกอ น
และเอา Spinner มา SetOnItemSelectedListener แบบนี้
ทาํ การสงคา ที่ user เลอื กบน Spinner ไป แสดงบน Alert Dialog
70
อบรมเขียน Coding Android Application กบั มาสเตอร อึง่ http://androidthai.in.th
อบรมแอนดรอยด กบั มาสเตอร อ่งึ
Test Codding form Spinner
เรยี นรูการทํา SeekBar
Create Activity มาเลยครับ
ออกแบบ User Interface และ SetContentView ไปที่ คลาส แบบนี้ 71
อบรมเขียน Coding Android Application กับ มาสเตอร อึ่ง http://androidthai.in.th
อบรมแอนดรอยด กับ มาสเตอร อึ่ง
กำหนด Intent ไปท่ี SeekBarActivity.java ใน position = 3 ท่ี MainActivity.java แบบนี้
ทดสองการทำงานของ Intent วา ไปท่ี SeekBarAtivity.java แบบนี้ไดใหม ?
72
อบรมเขยี น Coding Android Application กับ มาสเตอร องึ่ http://androidthai.in.th
อบรมแอนดรอยด กบั มาสเตอร อึ่ง
ประกาศตวั แปร และ Initial Widget ของ SeekBar
73
อบรมเขียน Coding Android Application กบั มาสเตอร อึ่ง http://androidthai.in.th
อบรมแอนดรอยด กบั มาสเตอร อึ่ง
ทดสอบ SeekBar
การสง คา SeekBar ไปแสดงบน Alert Dialog เหมือนเดิมประการตัวแปร และ สบื ทอด
74
อบรมเขยี น Coding Android Application กับ มาสเตอร อ่ึง http://androidthai.in.th
อบรมแอนดรอยด กบั มาสเตอร อึ่ง
การสงคา SeekBar ทีเ่ ลือกไปที่ Alert Dialog
ทดสอบโคด SeekBar ครับ
75
อบรมเขยี น Coding Android Application กบั มาสเตอร อ่งึ http://androidthai.in.th
อบรมแอนดรอยด กบั มาสเตอร อ่ึง
การบาน android Thai
ลองทําดู เฉลยอยใู น เวบ็ ของ มาสเตอร
1. สรา ง Activity ของ Radio Button ใหม ขี อ เลือกไดส ัก สาม หรอื ส่ี ก็ได
2. รูน ะวา การมี คลาสอยางเดียว ทํา Activity ไมได ตองมี Layout ทีเ่ ปน ไฟร xml
3. ทำ Intent ขา มการทํางาน ระหวา ง Activity กบั Activity ที่ MainActivity.java ดวย
4. Get คาท่ี User เลอื ก Radio Button
5. สงคาทเ่ี ลอื กได ไปแสดงที่ Alert Dialog
ขอใหโ ชคดีครบั
มาสเตอร องึ่
http://androidthai.in.th
76
อบรมเขยี น Coding Android Application กบั มาสเตอร อึง่ http://androidthai.in.th