| Input Text and Change Color by Two Button AlertDialog |
Input Text and Change Color by Two Button AlertDialogมีหลายคำถามที่ถามมาเกี่ยวกับ การ กรอกข้อความ Text ไปที่ EditText และ Intent ส่งค่าไปยัง Activity ที่สอง โดยมีการ AlertDialog ให้เลือกสี ของ TextView ที่จะแสดงใน Activity ที่สอง ทำอย่างไร
Concept Designโจทย์ของเราเป็นอย่างนี้นะครับ เดียวเราจะโค้ดดิ้ง แอฟ ที่ชื่อว่า LearnInputChooseColor โดย แอฟนี้จะประกอบไปด้วย 2 Activity คือ
New Project AndroidNew Project Android ออกมาเลยครับ
กำหนดชื่อโปรเจ็คเป็น LearnInputChooseColor ครับ
Build Targetพอดีได้เครื่อง Tattoo ของน้องที่มาเรียน การเขียนแอฟแอนดรอยด์ มาทดสอง เลยต้องตั้ง Build Target เป็น android 1.6 ครับ
Properties
ออกแบบ User Interface ก่อนหลังจากที่ eclipse ได้ทำการ Gen โค้ดต่างให้ ผมได้เปิด main.xml มา Design UI ก่อน
โค้ดดิ้ง xml ตามนี้สังเกตุว่าผมจะกำหนด id ให้กับ editText และ button ด้วย
เพื่อให้ได้หน้าตาแบบนี้
สร้าง answer.xmlสำหรับ layout ที่สอง ไว้ให้ Activity ที่สอง (Answer.java)
eclipse จะสร้าง answer.xml ให้
การโค้ดดิ้งไฟล์ answer.xml แบบนี้นีะครับผมจะกำหนด id ที่จะแสดงคำตอบหรือ andwer ไว้สองจุด ที่เดียวกัน
เพื่อให้ได้ Layout แบบนี้
Codingเปิดไฟล์ MainActivity.java ออกมาเลยครับ ขั้นแรกผมกำหนด Attribule ก่อน
ต่อมาผม SetOnClickListener ให้กับปุ่ม btnInput
โดยกำหนดว่า ถ้ามีการคลิก btnInput ให้ทำ เมธอด ButtonInput()
แล้วผมก็สร้างเมธอด ButtonInput()โดยกำหนด AlertDialog ที่จะโชว์ข้อความ Choose Text Color ? และมีปุ่มเลือกสี Yellow กับ Red
สำหรับ MainActivity.java พักเอาไว้ก่อน ให้เราไปสร้าง Activity ที่สองกัน สร้าง Activity ที่สองไปที่ New > Class
ผมกำหนดชื่อ activity ที่สองว่า Answer มี Superclass เป็น andrid.app.Activity
ตัว eclipse จะช่วย gen code ให้แบบนี้
สร้างเมธอด OnCreate ก่อน
กำหนด Attribute ต่างๆ
ผูก Widget กับ Attribute ต่างๆ
ผมใช้ เงื่อนไข if ในการกำหนด การ SetText ไปที่ txtAnswer
กำหนด OnClickListener ให้ปุ่ม Back
กลับมาที่ MainActivity.javaในส่วนของ AlertDialog จะมีสองปุ่ม โดยปุ่มแรกเราจะกำหนด ให้มีการ Intent ไปที่ Answer.java โดยจะมีการส่งค่า strInput จะส่งไปในรูปตัวแปร TextInput และ ค่า 1 ในตัวแปร colortext
ส่วนอันนีเป็นของอีกปุ่มนึง
มาทดสอบโค้ดกันสิ่งแรกมาทดสอบใน AVD (Android Virtual Device) เปิด AVD ที่เป็นแอนดรอยด์ 1.6 ขึ้นมาและทดสอบครับ
ผมลองกรอก Text Master และคลิก Input
ลองคลิก Yellow
ลองคลิก Back แล้ว คลิก Input กับ Red
ต่อมาผมนำไปทดสอบใน มือถือแอนดรอยด์ ที่เป็น ระบบปฎิบัติการแอนดรอยด์ 1.6 อย่าง htc tattoo
ลองทดสอบกับมือถือ แอนดรอยด์ เวอร์ชั่นสูงๆบ้าง อย่าง Wallcome A99 ซึ่งเป็นระบบปฎิบัติการแอนดรอยด์ 2.3.3
|