การส่งค่า ไปมา ระหว่าง Fragment

โจทย์เป็นอย่างนี่นะ มาสเตอร์ จะสร้าง Fragment 2 อัน การเคลื่อนย้ายการทำงานจะใช้วิธีการคลิกที่ปุ่ม แต่ ที่ Fragment แรก จะส่งค่า ที่ กรองไปใน Edit Text ไปแสดง ที่ TextView ที่อยู่ที่ Fragment ที่สองด้วย เรามาเริ่มต้นทำจากศูนย์กัน

สร้างโปรเจคแอนดรอยด์ เปล่าๆ ขึ้นมาก่อน

ติดตั้ง android support v4 เพื่อได้ใช้ Fragment

สร้าง Layout สำหรับ Main

และ เพิ่ม Edit Text และ Button ง่ายๆ แบบนี่เข้าไปที่ Layout

สร้าง คลาส Fragment

เอา คลาสที่ได้มา ไปสืบทอด Fragment เลือก android.support.v4 นะครับ

เสร็จแล้ว Over ride Method ตัว onCreateView สร้าง View และ Return กลับไปแบบนี้

ต่อไป สร้าง SecondFragment โดยการสร้าง Layout ก่อน แล้วค่อยสร้าง คลาส

ทำเหมือน Fragment แรกเลย ต่อไปไปที่ Layout ของ Activity

ลบ TextView และ เพิ่ม Layout ที่จะให้แสดง Fragment กำหนด id ด้วยนะ

ที่ คลาส MainActivity ทำการ Add Fragment

ลองทดสอบโค้ดว่าทำงานได้ไหม ? โดยการสั่งรัน

กลับมาที่ MainFragment มาสเตอร์ Override onActivityCreate

สร้าง method addNameController เพื่อ เก็บ Listener จากการคลิกปุ่ม

โดยจะ เก็บค่าที่ได้จาก Edit Text ไปแสดงใน Log Cat ที่ใช้ Tag ติดตามที่ชื่อ 4AuguestV4

มาสเตอร์ ตั่งค่าการติดตาม. Tag แล้ว สั่ง Run โค้ดบน Genymotion เลย

ลองไม่กรองอะไร ? คลิกที่ Add Name จะต้องได้แบบนี่ บน Log Cat

เพราะ มาสเตอร์ กำหนดว่า ถ้าไม่กรอก ตัวแปร String จะมีค่า เป็น. Not Thing แต่ถ้ากรอก

ก็จะได้ค่าตามที่กรอก งานต่อไป คือเราจะโยนค่าที่ได้จาก. Edit Text ไปแสดงอีก Fragment

มาสเตอร์ สร้าง Instance ที่จะรับค่า จาก Fragment แรก มาเก็บไว้ใน Argument

กลับมาที่ MainFragment

มาสเตอร์​ Replace Fragment แบบ BackStack พร้อม ส่งค่า nameString ไปที่ Instance

กลับมาที่ SecondFragment มาสเตอร์ Overrite onCreate โดยให้ตัวแปร showNameString ทำการรับค่าจาก Argument และ นำไปแสดงใน Log Cat

ทดสอบโค้ดโดยโยนค่า Doramon ดูซิว่ารับค่า จาก Fragment แรกได้ไหม ?

เมื่อรับค่า ได้ มาสเตอร์ ให้แสดงค่า ที่. TextView

ลองไม่กรอง จะแสดง Not Thing

ลองกรอก Nopita

สุดท้าย ทำให้ Back ทำงาน

เรียบร้อยโรงเรียนมาสเตอร์ เห็นไหม ? ไม่ยากเลยในการโยนค่าไปมา ระหว่าง Fragment

สามารถโหลดโค้ดได้ที่ https://github.com/masterUNG/PutValueFragment ครับ

A single golf clap? Or a long standing ovation?

By clapping more or less, you can signal to us which stories really stand out.