ยินดีต้อนรับกลับมา
ในวิดีโอที่ผ่านมา เราได้สร้างกิจกรรมการจัดวางเลย์เอาต์นี้ โดยเน้นที่ส่วนหลักและย้ายรายการในรายการ
ในวิดีโอนี้ เราจะใช้ไลบรารีการผูกข้อมูลที่เราได้ดำเนินการในไฟล์ Build.gradle
ของเรา และเปิดใช้งานโดยใช้คุณสมบัติการสร้างการผูกข้อมูลเท่ากับ
true เพื่อเชื่อมโยงวิดเจ็ตเหล่านี้ในเลย์เอาต์กับตัวแปรข้อมูลที่สอดคล้องกันในกิจกรรมหลัก
ฉันจะไม่สร้างตัวแปรใดๆ ในเลย์เอาต์ของรายการภาพยนตร์
ฉันจะสร้างตัวแปรข้อมูลใหม่
และฉันจะตั้งชื่อมันว่าภาพยนตร์
และชนิดของตัวแปรข้อมูลนี้คือคลาสภาพยนตร์ที่เราสร้างไว้ก่อนหน้านี้
ดังนั้นในแอปภาพยนตร์นี้ ฉันเลือก modal และเลือกคลาสภาพยนตร์นี้
ไปเรียนวิชาภาพยนตร์กันอีกครั้ง ในแพ็กเกจโมดัลของเรา มีหนึ่ง สอง สาม
สี่ ห้า หก หกตัวแปรที่เราสามารถเชื่อมโยงได้ ซึ่งฉันต้องการให้คุณให้ความสนใจกับฉัน
ฉันต้องการแสดงรูปภาพที่นี่
ฉันต้องการแสดงคะแนน และฉันต้องการแสดงชื่อภาพยนตร์
สำหรับเรื่องนั้น ฉันจะเริ่มจากข้อความก่อน แล้วหลังจากนั้นจะย้อนกลับไปดูที่รูปภาพ
ดังนั้นข้ามการดูภาพ
ตอนนี้ ในมุมมองข้อความนี้ ฉันจะใช้ไวยากรณ์ของการผูกข้อมูลที่เชื่อมโยงกับข้อความเท่ากับ at
และไวยากรณ์ของการผูกข้อมูล movie dot และฉันสามารถรับตัวแปรทั้งหมดเหล่านี้ได้
เส้นทางโปสเตอร์ภาพรวม ID วันที่เผยแพร่ ชื่อ และคะแนนเฉลี่ยการโหวต
ฉันจะใช้ชื่อเรื่อง ดังนั้นนี่คือสำหรับชื่อเรื่อง และมุมมองข้อความที่สองคือสำหรับคะแนน
ดังนั้นสำหรับเรื่องนั้น ฉันจะใช้ข้อความเหมือนเดิม
และที่นี่ฉันจะใช้คะแนนเฉลี่ยจาก dot vote ของภาพยนตร์
แต่มีปัญหาอยู่ที่นี่
ทำไมฉันไม่สามารถใช้การผูกข้อมูลแบบค่าเฉลี่ยจุดของภาพยนตร์ในมุมมองข้อความได้ เนื่องจากไม่ยอมรับตัวแปรชนิด double
ดังนั้นถ้าเราไปที่ภาพยนตร์ เราจะเห็นว่ามันเป็นประเภทการผูกข้อมูลแบบคู่ที่ยอมรับเฉพาะตัวแปรชนิดสตริงเท่านั้น
และผมได้กล่าวถึงข้อสังเกตที่สำคัญมากนี้ในวิดีโอที่ผ่านมาเกี่ยวกับการผูกข้อมูล
วิธีแก้ไขคืออะไร? ฉันไม่สามารถเปลี่ยนค่า double นี้ได้เพราะมันเป็นประเภท
double ในค่าเฉลี่ยการโหวตของคำตอบ Json
ฉันจำเป็นต้องรวมสิ่งนี้ไว้ในเมธอด double dot ไปยังสตริง และสิ่งนี้จะแปลงค่า double ให้เป็นสตริง
โอเค
ดังนั้นฉันกำลังแปลงค่า double เป็นสตริงเพื่อแสดงมันภายใน text view โดยใช้การผูกข้อมูล
นี่คือหมายเหตุที่สำคัญมาก
คุณควรให้ความสนใจกับมัน
ดังนั้น ก่อนที่ฉันจะไปยังมุมมองภาพ ฉันจำเป็นต้องตั้งค่าชื่อและค่าเฉลี่ยคะแนนเสียงให้เป็นของ Bindesboll
ฉันจะเลื่อนขึ้นเพื่อให้คลาสนี้ คลาสภาพยนตร์ สามารถสืบทอดจากพื้นฐาน
observable และฉันกำลังนำเข้าสิ่งนี้จากไลบรารีการผูกข้อมูล
เมื่อคุณขยายคลาสพื้นฐานที่สังเกตได้ (base observable class) ในคลาสโมดอลหรือคลาสข้อมูลของคุณ
คุณกำลังเปิดใช้งานการผูกข้อมูลอัตโนมัติ (automatic data binding) และทำให้การผูกข้อมูลระหว่างวัตถุข้อมูลกับส่วนประกอบในไฟล์เลย์เอาต์ของแอปของคุณง่ายขึ้น
ดังนั้น เพื่อบอก Android Studio ว่า text view นี้เชื่อมโยงกับตัวแปร title
นี้ สิ่งที่ฉันต้องทำคือทำการ implement หรือ extend base observable และฉันต้องบอก
Android Studio ว่าเมธอด get title นี้เป็นเมธอดที่สามารถ bind ได้
คำอธิบายประกอบเหล่านี้เพิ่มสัญญาณ Bindable ให้กับ binding ข้อมูล ซึ่งระบุว่าพร็อพเพอร์ตี้เหล่านี้สามารถผูกกับคอมโพเนนต์ UI ได้
ดังนั้นนี่คือการรับชื่อเรื่องและการรับคะแนนเสียงเฉลี่ยก็จะสามารถผูกมัดได้เช่นกัน
เมื่อใดก็ตามที่คุณต้องการผูกคุณสมบัติใดๆ ของคอมโพเนนต์ UI ในเลย์เอาต์
คุณควรขยายคลาสพื้นฐานที่สังเกตได้และเพิ่มคำอธิบายประกอบ add Bindable ให้กับคุณสมบัติดังกล่าว
โดยการขยายฐานที่สังเกตได้และใช้การผูกข้อมูล คุณสามารถสร้างกลไกการผูกข้อมูลที่แข็งแกร่งและมีประสิทธิภาพซึ่งทำให้การซิงโครไนซ์ของวัตถุข้อมูลของคุณกับ
UI ของคุณเป็นไปโดยอัตโนมัติ
ลดปริมาณโค้ดที่ต้องทำซ้ำซึ่งจำเป็นสำหรับการจัดการการอัปเดตเหล่านี้ด้วยตนเอง
และสิ่งสุดท้ายที่คุณต้องกล่าวถึงคือคุณสมบัติการแจ้งเตือนที่เปลี่ยนแปลงในทุกเมธอดการตั้งค่า
ดังนั้นทุกครั้งที่คุณใช้การผูกข้อมูล คุณควรขยายคลาสพื้นฐานที่เป็น observable และเพิ่ม bindable สำหรับ getter
และเพิ่มคุณสมบัติ notify property changed ให้กับ setter
ดังนั้นให้แจ้งวิธีการเปลี่ยนแปลงคุณสมบัติ และที่นี่ฉันจะระบุชื่อ VR dot และสำหรับค่าเฉลี่ยการโหวต ฉันจำเป็นต้องระบุหรือใช้
notify property changed VR dot
vote average การแจ้งการเปลี่ยนแปลงคุณสมบัติเป็นวิธีการที่จัดเตรียมโดยคลาส observable พื้นฐาน
ซึ่งใช้ร่วมกับไลบรารี Android data binding เพื่อแจ้งให้กรอบการผูกข้อมูลทราบว่ามีการเปลี่ยนแปลงคุณสมบัติในวัตถุข้อมูล
และ BR ย่อมาจาก Binding Resources
นี่คือคลาสที่ถูกสร้างขึ้นโดยอัตโนมัติโดยไลบรารีการผูกข้อมูลของ Android
และมันประกอบด้วยค่าคงที่จำนวนเต็มซึ่งแสดงถึงนิพจน์การผูกที่ใช้ในไฟล์เลย์เอาต์ของคุณ
ชื่อเรื่องและคะแนนเฉลี่ยการโหวตหมายถึงทรัพย์สินที่คุณต้องการแจ้งให้ทราบ
การผูกข้อมูลเกี่ยวกับ
ดังนั้น องค์ประกอบ UI ที่ผูกกับคุณสมบัตินี้จะอัปเดตโดยอัตโนมัติเพื่อสะท้อนค่าใหม่
ดังนั้นนี่คือวิธีที่เราใช้การผูกข้อมูลในคลาสข้อมูลภาพยนตร์