| การโค้ดดิ้ง MainActivity.java |
Coding MainActivity.javaและแล้วสิ่งที่รอค่อย ก็มาถึง หลังจากที่เราได้ออกแบบ User Interface (UI) เป็นที่เรียบร้อยแล้ว ใครยังไม่ได้ทำไปดู ที่มี่ ครับ เปิด MainActivity.java ออกมาเลยครับ
ประกาศตัวแปร และ กำหนด Attributr ก่อน โดยผมกำหนด edtTHB เป็นตัวแปรที่จะรับค่าจาก Widget ที่เป็น EditText โดยมีความสามรถของการเข้าถึงแบบ private
กำหนดตัวแปรให้ RadioButtonต่อมาผมประกาศ ตัวแปร 3 ตัวคือ
ประกาศตัวแปรให้กับ Buttonผมกำหนดให้ btnConvert เป้น ปุ่ม
ประกาศตัวแปรให้กับ exChange และ Answer ที่เป็นจำนวนจริง Double
ประกาศตัวแปร String ให้กับ unitMoney
ผูกตัวแปรที่เราประกาศ โดยอ้างอิง id จาก Widgetผมผูก edtTHB กับ Widget ที่มี id เป็น @+id/editTextInputTHB จำตอนกำหนด id ของ Widget editText ได้ใช่ไหมครับ
และทำส่วนของ RadioButton ทั้ง 3 ตัวเลือก
ตามด้วย Button
setOnClickListener ให้กับปุ่มขั้นตอนต่อไป ผมจะทำการ setOnClickListener ให้กับ ปุ่ม btnConvert
ถ้ามี error ในตอน setOnClickListener ให้ import android.View.View.OnClickListener แบบนี้นะครับ
สร้าง Method calculateMoneyก่อนที่ผมจะกำหนดว่า จะให้ทำอะไร ถ้ามีการคลิก ปุ่ม btnConvert ผมออกไปสร้าง เมธอด calculateMoney ก่อนแบบนี้
กำหนดเงื่อนไข ifผมกำหนดเงื่อนไข ว่า ถ้า rdbUSD ที่เป็น RadioButton มีการ Check ให้กำหนดค่าของ exChange ไปเป็น 31.23 ซึ่งค่านี้จะนำไปคูณกับ edtTHB เพื่อให้ได้คำตอบ เป็น ดอลล่า
กำหนด สมการ เพื่อให้เกิดการคำนวน โดยค่า Answer จะเกิดจาก เอาค่า edtTHB มาคูณกับ exChange แต่ edtTHB จะคุณเลยไม่ได้ จะ error เพราะ edtTHB เป็น String ต้องแปลงเป็นจำนวนจริง double ซะก่อนคุณ
ภาพรวม ของ เมธอด calculateMoney
ใช้ Toast เพือทดสองโค้ดในความสมบูรณ์ ของ แอพพลิเคชั่น ต้องเขียนโค้ดอีด Activity นึง แต่ผมต้องการทดสอบ โค้ดที่ Activity นี้ก่อน โดยจะให้ แอพพลิเคชั่น แสดงค่าที่คำนวนได้ ก่อน ถ้าทุกอย่าถูกต้อง ค่อยลบคำสัง Toast นี้
กลับมาที่ setOnClickListenerทีนี้เราก็รู้แล้วว่า เมื่อมีการคลิกปุ่ม btnConvert ให้ แอพพลิเคชั่น ทำอะไร ? ก็ ทำ calculateMoney ไงครับ
ลองทดสอบโค้ด บน AVDลองคลิก Run โปรแกรมแบบ Android Application และผมลองกำหนดค่าเงิน 100 บาท เลือกการแปลงค่าเป็น ดอลล่า และ คลิกปุ่ม Convert จะเป็นอย่างไร
ผลเมื่อคลิกปุ่ม Convert
เห็นไหม 100 บามแลกได้ 3.2 ดอลล่าเอง เดี๋ยวครั้งหน้ามา โค้ดดิ้ง สำหรับ Activity ที่สองกัน นะครับ |