ยินดีต้อนรับกลับมา
ในวิดีโอนี้ เรามาเริ่มกิจกรรมหลักและทดสอบแอปพลิเคชันของเรา
สำหรับเรื่องนี้ ฉันจะสร้างตัวแปรบางอย่างและกำหนดค่าเริ่มต้นให้กับวิดเจ็ตบางตัว
ดังนั้น ฉันจึงสร้างรายการอาร์เรย์ส่วนตัวของภาพยนตร์และตั้งชื่อว่า "movies"
ฉันจะกด Enter เพื่อนำเข้าคลาสภาพยนตร์ และฉันจะกด Enter เพื่อนำเข้าคลาสรายการอาร์เรย์
ฉันจะสร้าง adapter ของ recyclerview แบบส่วนตัวสำหรับ movie และจะตั้งชื่อว่า movie adapter, layout สำหรับ swipe refresh
แบบส่วนตัว, activity สำหรับ data binding, activity สำหรับ binding และ ViewModel สำหรับ activity หลัก
ViewModel ViewModel.
ให้เราเริ่มต้นค่าเริ่มต้นที่นี่ในเมธอด Oncreate โดยกำหนดให้เท่ากับข้อมูลที่ผูกไว้ ใช้ util dot set Contentview
เป็นพารามิเตอร์แรก และ dot layout dot activity main เป็นพารามิเตอร์ที่สอง
ขณะนี้ ViewModel เท่ากับ new ViewModel provider.
ฉันกำลังเริ่มต้นโดยส่งสิ่งนี้ในพารามิเตอร์แรกซึ่งเป็นเจ้าของและ get
ซึ่งเป็นกิจกรรมหลัก
ViewModel จุด คลาส
โค้ดนี้ให้ตัวอย่างของกิจกรรมหลัก
ViewModel โดยใช้ผู้ให้บริการ ViewModel ในกิจกรรม Android
ผู้ให้บริการ ViewModel เป็นคลาสที่จัดเตรียมโดยส่วนประกอบสถาปัตยกรรมของ
Android สำหรับการจัดการอินสแตนซ์ของ ViewModel
มันถูกใช้เพื่อสร้างและดึงข้อมูลตัวอย่างของ ViewModel ที่เชื่อมโยงกับขอบเขตวงจรชีวิตเฉพาะ
เช่น กิจกรรมหรือแฟรกเมนต์
และสิ่งนี้ ในคอนสตรัคเตอร์ของผู้ให้บริการ ViewModel นี้ จะอ้างอิงถึงคอมโพเนนต์
Android ปัจจุบัน ซึ่งโดยทั่วไปจะเป็นกิจกรรมหรือแฟรกเมนต์ของ Android
และนี่หมายถึงกิจกรรมหลักที่เป็นการสร้างหรือดึงอินสแตนซ์ของ ViewModel
ขอบเขตวงจรชีวิตของโมเดลมุมมองถูกผูกไว้กับคอมโพเนนต์ของมัน ดังนั้นจึงผูกกับวงจรชีวิตของกิจกรรมหลักด้วย
เมธอด get
ส่วนนี้ของโค้ดดึงอินสแตนซ์ของคลาส ViewModel ของกิจกรรมหลัก
มันบอกให้ผู้ให้บริการ ViewModel สร้างอินสแตนซ์ใหม่ของ ViewModel
หากไม่มีอยู่สำหรับวงจรชีวิตปัจจุบัน ขอบเขต หรือคืนค่าที่มีอยู่
หากมีอยู่แล้ว หากมี ViewModel
ที่มีคลาสที่ระบุไว้อยู่แล้วสำหรับขอบเขตปัจจุบัน จะถูกส่งคืนเพื่อให้แน่ใจว่าคุณมี ViewModel
ของกิจกรรมหลักเพียงหนึ่งเดียวที่เชื่อมโยงกับกิจกรรมของคุณ หากไม่มีอยู่ และหากเป็นกรณีนี้
ViewModel ของกิจกรรมหลักใหม่จะถูกสร้างขึ้นและเชื่อมโยงกับขอบเขตปัจจุบัน
จากนั้นฉันจะสร้างเมธอดที่เรียกว่า pop
รับชมภาพยนตร์ยอดนิยมได้ที่นี่ในกิจกรรมหลักภายใต้เมธอด Oncreate
และฉันจะเริ่มต้นด้วย ViewModel Dot
รับทุกภาพยนตร์ dot สังเกตวิธีการนี้และผู้สังเกตการณ์ใหม่พร้อมกับรายการภาพยนตร์
วิธีนี้จะใช้ ViewModel เพื่อสังเกตการเปลี่ยนแปลงในรายการภาพยนตร์ที่ถูกดึงมาโดยใช้วิธี get
all movies จากกิจกรรมหลัก
ViewModel ดังนั้นนี่จึงแยกออกจากเมธอด Observe ของ ViewModel
บรรทัดนี้ตั้งค่าผู้สังเกตการณ์สำหรับข้อมูลสด
ดังนั้นวิธีนี้จึงถูกใช้เพื่อสังเกตการเปลี่ยนแปลงในข้อมูลสด
อาร์กิวเมนต์แรกคือเจ้าของวงจรชีวิตที่ผู้สังเกตการณ์ควรผูกไว้ในกิจกรรมของ Android
และเฟรมเวิร์กเป็นเจ้าของวงจรชีวิตทั่วไป และนี่หมายถึงกิจกรรมหลัก
ซึ่งเป็นกิจกรรมและเจ้าของวงจรชีวิตนี้
จากนั้นคุณเป็นผู้สังเกตการณ์และรายการภาพยนตร์
นี่สร้างคลาสภายในที่ไม่ระบุชื่อซึ่งดำเนินการตามอินเตอร์เฟซ observer สำหรับรายการภาพยนตร์
วิธีการที่ไม่เปลี่ยนแปลงภายใน Observer จะถูกเรียกใช้ทุกครั้งเมื่อรายการภาพยนตร์มีการเปลี่ยนแปลง
วิธีการที่ไม่เปลี่ยนแปลง
นี่คือเมธอดคอลแบ็กที่จะถูกเรียกใช้เมื่อข้อมูลสดที่มีรายการภาพยนตร์เปลี่ยนแปลง
พารามิเตอร์ movies ประกอบด้วยรายการภาพยนตร์ที่อัปเดตแล้วซึ่งอยู่ภายในเมธอดที่ไม่มีการเปลี่ยนแปลง
คุณสามารถเขียนโค้ดเพื่อจัดการการเปลี่ยนแปลงในรายการของภาพยนตร์ได้
สำหรับเรื่องนี้ ฉันจำเป็นต้องใช้รายการที่อัปเดตนี้เพื่ออัปเดตรายการอาร์เรย์ของฉัน
ดังนั้นภาพยนตร์ที่เท่ากับภาพยนตร์และไม่ได้ใช้ชื่อเดียวกัน
ดังนั้นฉันจะเปลี่ยนนี้เป็นภาพยนตร์จากข้อมูลสด คัดลอกและวางที่นี่
และฉันต้องแปลงมันเป็นรายการอาร์เรย์ของภาพยนตร์
จากนั้นฉันต้องเรียกเมธอดที่ชื่อว่า Show บนทุกภาพยนตร์ที่แสดงใน Recyclerview
กด Alt+Enter เพื่อสร้างเมธอดในกิจกรรมหลัก
ดังนั้นฉันจึงสร้างที่นี่