หลังจากที่เราได้เพิ่มไลบรารีที่จำเป็นสำหรับโปรเจกต์ Paging App
ของเราเรียบร้อยแล้ว ขั้นตอนต่อไปเราจะมาวางแผนกัน
สิ่งที่เราจะทำภายในโค้ดเพื่อให้แอปการเลื่อนหน้าถูกสร้างขึ้นตามมาตรฐาน MVP M และไลบรารีการเลื่อนหน้า
Retrofit และ dagger health
นี่คือสถาปัตยกรรม MVP AMP
และแน่นอนว่า เมื่อพูดถึงการปรับปรุงระบบให้ทันสมัย เราจะดึงข้อมูลจาก
API ซึ่งเป็นบริการเว็บหรือฐานข้อมูลออนไลน์
ดังนั้นแหล่งข้อมูลระยะไกลจะเป็นเช่นเดียวกับการติดตั้งเพิ่มเติม
ฉันจะแบ่งแผนภูมินี้ออกเป็นสามส่วน
ดังที่เราได้เรียนรู้มาก่อนแล้ว เรามีมุมมอง
เรามีโมเดลมุมมองและโมเดล
ดังนั้นกิจกรรมในแอปของเราจะมีเพียงกิจกรรมเดียวเท่านั้น ซึ่งเป็นกิจกรรมหลักที่แสดงภาพยนตร์ใน Recycler View และ
View Model ซึ่งประกอบด้วย View Model
และข้อมูลสด รวมถึง Model ที่เชื่อมต่อกับ Repository
ซึ่งเป็นแหล่งข้อมูลระยะไกลที่ปรับใช้แล้วและ Web Service เราจะใช้วิธี
Dagger Hilt และเราจะแนะนำไลบรารีการแบ่งหน้า ซึ่งเป็นเป้าหมายหลักของโครงการนี้
ดังนั้น ไปที่ Android Studio กันเถอะ
มาเริ่มสร้างแพ็กเกจกันที่นี่และทำให้ทุกอย่างชัดเจน
ดังนั้น แพ็กเกจ ชุดแรกจะเป็นโมเดล
และภายในโมเดลนี้ ฉันจะสร้างสองคลาส คือ คลาสภาพยนตร์ และคลาสภาพยนตร์สื่อ
นี่คือภาพยนตร์
และขอให้ฉันแก้ไขบางสิ่งบางอย่างที่สำคัญมากเกี่ยวกับโทรทัศน์ภาพยนตร์
หลังจากที่คุณลงทะเบียนแล้ว
ในเรื่องนั้น
เว็บไซต์ภาพยนตร์ DB dot org
คุณคลิกที่เพิ่มเติม API และจะเห็นหน้านี้ จากนั้นเราคลิกที่นักพัฒนา และเอกสาร DP ของภาพยนตร์
ดังนั้น นี่จะโหลดเอกสารเหล่านั้น
และนั่นจากแบบฝึกหัดก่อนหน้านี้และแอปพลิเคชันก่อนหน้านี้ที่เราได้เห็นแล้วว่า API, ฐานข้อมูลภาพยนตร์
arc, นี่คือลิงก์ที่คงที่
และนี่คือลิงก์จุดสิ้นสุด
นี่คือลิงก์ที่เราจะดึงมาและเราจะแก้ไขตามความต้องการของเรา
ดังนั้น
ดังนั้นคำตอบทั้งหมดจะเป็นแบบนี้
ดังนั้นฉันจะคัดลอกสิ่งนี้ออกจากรายละเอียด
และฉันจะเลือก Jason สำหรับ Defi ออนไลน์
นี่คือเจสันสำหรับองค์กรนั้น
นี่คือเว็บไซต์ที่ดีสำหรับการกำหนดการตอบสนอง JSON และเราวางการตอบสนองของเรา
ดังนั้นเราจึงมาอยู่ที่นี่
เราไป
เราเคยมีแบบนั้นมาแล้ว
อย่างไรก็ตาม ในแอปนี้ เราจะไม่ดึงและรับข้อมูลทั้งหมดที่การตอบสนอง
JSON นี้จะแสดงให้เราเห็น
ดังนั้นเราจะดึงเฉพาะชื่อ, ID
และเส้นทางของโปสเตอร์ ซึ่งเป็นรูปภาพและค่าเฉลี่ยของคะแนนโหวตเท่านั้น
โอเค
ดังนั้น
อีกสิ่งสำคัญที่ฉันควรกล่าวถึงหากคุณไปที่ developers dot they're movie DB dot
org slash three strata slash getting
started and introduction ซึ่งก็คือ API สำหรับเอกสารสำหรับนักพัฒนาให้เลื่อนลงไปที่ภาพยนตร์
และเรากำลังจะได้รับความนิยมขนาดนั้น
โอเค
นี่คือโฆษณาที่เราจะได้รับคำขอเพื่อทำงานด้วย
และนี่คือเพจซึ่งเป็นจำนวนเต็มที่เราจะใช้เพจนี้หรือที่มุมมองในไลบรารีการแบ่งหน้าด้วยมัน
โอเค
ดังนั้นถ้าเราไปที่นี่และระบุคีย์ API ให้ฉันและนี่คือคีย์ API ของฉัน
ฉันคัดลอกและวางที่นี่จริงๆ และส่งคำขอไปแล้ว
มันจะมอบสิ่งนี้ให้กับเรา
โอเค
มีข้อผิดพลาด
ตรวจสอบเครื่องมือสำหรับนักพัฒนา
มี
เราจะมาถึงที่นี่
หน้านี้เท่ากับหนึ่ง
ดังนั้น หากเรากำหนดหน้า 4 ถึง 5 หน้าที่มีค่าเท่ากับห้าจะถูกเพิ่มเข้าไป
ดังนั้นหากเราลบหน้าออก คำขอที่นี่จะเป็นการลบหน้า
ซึ่งหน้าดังกล่าวเป็นหน้าเริ่มต้นที่เท่ากับหนึ่งหน้า
ทุกคนครับ ผมอยากให้พวกคุณเข้าใจว่าทำไมเราถึงจะใช้หน้านี้
และสำหรับคำขอส่งนี้ คำขอฉบับนี้
และเมื่อระบุคีย์ API ในการฝึกฝนก่อนหน้านี้และการเรียก API
ก่อนหน้า เช่น ฐานข้อมูลภาพยนตร์และแอปภาพยนตร์โปรที่เรามี ให้สร้างมันขึ้นมาก่อน
เราไม่ได้ระบุหมายเลขของหน้าไว้
แต่ตอนนี้เราจะดึงข้อมูลนั้นตามหน้า
ดังนั้น หากผู้ใช้เลื่อนลงมาเบา ๆ ห้าหน้า และต้องการแสดงภาพยนตร์
50 เรื่องแรก เราจะไม่แสดงภาพยนตร์ทั้งหมด 1 ล้านเรื่องและภาพยนตร์ทั้งหมดในเว็บไซต์ภายในฐานข้อมูลภาพยนตร์นั้น
เราจะดึงข้อมูลเพียง 50 เรื่องแรกเท่านั้น และนี่คือเหตุผลที่เราจะใช้ไลบรารีหน้าและไลบรารีการแบ่งหน้า
โอเค งั้นเราจะดึงข้อมูลนั้นตามหน้าที่ต้องการ
โอเค
ไม่ใช่ นี่คือคำตอบ JSON ที่เราจะได้รับ
ตามที่ผมได้กล่าวไว้ เราต้องการบัตรประจำตัว เราต้องการเส้นทางโปสเตอร์นั้น และเราต้องการคะแนนเสียง
การนับคะแนนหรือค่าเฉลี่ยคะแนนเสียง
โอเค
ดังนั้น นี่คือสามสิ่งที่เราจะได้รับจากภาพยนตร์ DP The Talk
แต่มีอีกสิ่งหนึ่งที่ฉันควรจำไว้เมื่อดึงข้อมูลจากภาพยนตร์ D.B. คำตอบนั้นจะไม่มาในลักษณะเหมือนกับ
Jason ที่วางแผนไว้ภายในและทั้งหมดอยู่ในอาร์เรย์เดียว
พวกเขาถูกบรรจุอยู่ในสิ่งที่มีลำดับซ้อนกัน เช่น ผลลัพธ์ของหน้า, จำนวนหน้าทั้งหมด และจำนวนผลลัพธ์ทั้งหมด เป็นต้น
ดังนั้นถ้าเราไปที่คำจำกัดความที่นี่และเลื่อนลงไป คำตอบที่นี่จะได้รับข้อมูลเกี่ยวกับเรื่องนี้
มันคือวัตถุและมีหน้านั้นเป็นจำนวนเต็ม
ผลลัพธ์ ซึ่งก็คือชุดของภาพยนตร์ที่เป็นรายการภาพยนตร์ ผลลัพธ์
วัตถุ ผลลัพธ์ทั้งหมด และจำนวนหน้าทั้งหมด
ดังนั้นการตอบสนองของเจสันหรือรายการภาพยนตร์จึงไม่ได้อยู่ในรูปแบบของวัตถุธรรมดา
มันอยู่ภายในวัตถุขนาดใหญ่ และภายในวัตถุนี้ซึ่งมีสี่สิ่งเป็นคุณสมบัติ ได้แก่
ผลลัพธ์ของหน้า, ผลลัพธ์ทั้งหมด และจำนวนหน้าทั้งหมด
และภายในผลลัพธ์นั้นจะมีวันที่ของภาพยนตร์ที่เราจะได้รับ ซึ่งเป็นเส้นทางของโปสเตอร์
แนวคิด และคะแนนเฉลี่ย
ดังนั้น ฉันต้องการให้คุณเข้าใจสิ่งนี้และลำดับชั้นนี้
เราจะสร้างคลาสของ Modal สองคลาสใน order เพื่อให้ได้และดึงข้อมูลของ Jason อย่างถูกต้อง
ดังนั้นอันแรกคือภาพยนตร์ และอันที่สองคือคำตอบต่อภาพยนตร์
ภาพยนตร์ตอบกลับที่นี่
อย่างที่ผมบอกคุณไปแล้ว นี่คือคำตอบที่สำคัญ
นี่คือการตอบสนองทั้งหมดที่ดึงข้อมูลรวมถึงผลลัพธ์ด้วย
โอเค
ดังนั้นเราเริ่มต้นด้วยการสร้างคำอธิบายประกอบแบบอนุกรมนั้น ชื่ออนุกรมที่เหมาะสม
ซึ่งก็คือหน้าที่นี่
ดังนั้นเราจึงได้รับวัตถุนั้นในรูปแบบ JSON
และเปิดเผยคำอธิบายประกอบ โดยเราจะเริ่มต้นด้วยการสร้างหน้าค่าจำนวนเต็มส่วนตัวของพวกเขา
โอเค
ตอนนี้เราจะสร้างชื่อที่ถูกจัดลำดับซึ่งจะได้ชื่อเดียวกันกับที่นี่คือผลลัพธ์
ต้องคำนึงถึงตัวพิมพ์เล็กและใหญ่
ดังนั้นเราจึงบอกว่าฉันกำลังนำทุกหน้าไว้ที่นี่ ข้อมูลทั้งหมดนี้ ซึ่งเป็นจำนวนเต็ม
ฉันสามารถทำให้มันอยู่ในและภายในหมายเลขหน้านี้และยังสามารถแสดงที่นี่ได้
ฉันกำลังใส่ผลลัพธ์ทั้งหมดไว้ในรายการของเราเพราะมันแสดงผลที่นี่
มันคืนค่าเป็นรายการของภาพยนตร์
โอเค
และชุดของวัตถุ
อาร์เรย์ของชนิด object
วัตถุนี้คือประเภทภาพยนตร์
ทุกคนครับ กรุณาตั้งใจฟังผมด้วย
อาร์เรย์ของอ็อบเจ็กต์
ประเภทของวัตถุคืออะไร?
มันคือภาพยนตร์
ดังนั้นฉันจะสร้างคลาสและโมเดลคลาสสำหรับวัตถุภาพยนตร์
โอเค
รายการส่วนตัว
รายชื่อภาพยนตร์และภาพยนตร์ที่เรียกชื่อเท่ากันกับหมายเลข
โอเค
โอ้
นอกจากนี้ ให้ป้อนเพื่อนำเข้าชุดวลีคอลเลกชัน
และตอนนี้ฉันจะสร้าง serialized
ชื่อแบบต่อเนื่อง
มันถูกตั้งชื่อว่า
นี่คือผลลัพธ์ทั้งหมด โดยจะแยกแยะตัวอักษรใหญ่และเล็ก
ผลลัพธ์ทั้งหมด
และเปิดเผย
ขับมันและผลลัพธ์ทั้งหมด
และในทำนองเดียวกัน ฉันก็คอยดูการคัดลอกและวางที่นี่เช่นกัน
The.
จำนวนหน้าทั้งหมด
หน้า
แม้ว่าสิ่งนี้จะมีความสำคัญมาก
โอเค
ตอนนี้ มาสร้างและตั้งค่าเมธอดสำหรับตัวแปรเหล่านี้ที่นี่กัน
และตัวรับและตัวตั้งค่าตัวที่สาม
และนี่ก็เริ่มแล้ว
นี่คือเมธอด getter และ setter
ตอนนี้ไปดูหนังเรื่องนั้นกันเถอะ
และอย่างที่ฉันบอกคุณไปแล้ว ภาพยนตร์คือวัตถุ
และผลลัพธ์คือชุดของวัตถุเหล่านี้
ดังนั้นสิ่งที่เราจะได้รับจากวัตถุนี้ ฉันต้องการแนวคิดเกี่ยวกับเส้นทางของโปสเตอร์และค่าเฉลี่ยของคะแนนโหวต
ดังนั้นฉันจะไปที่นี่
และในทำนองเดียวกัน ฉันจะดำเนินการเช่นนั้นเนื่องจากเรากำลังทำงานกับชื่อแบบลำดับของเจสัน
นี่ชื่ออะไร? มันเรียกว่า
ID
นี่คือ ID
นั้นใช่ไหม? ต้องพิมพ์ให้ตรงกับตัวพิมพ์เล็กและใหญ่ด้วย
เปิดเผยด้วย
และเราจะไปที่ช่องว่างและสร้างส่วนตัวและไอดีตอนนี้
อันที่สอง, เส้นทางของป้ายชื่อแบบอนุกรมซึ่งที่นี่คือสตริง, bolster, underscore,
path และ expose.
และเส้นทางของโพสต์สตริงส่วนตัว
ชื่อลำดับเดิม serialize โหวต
ใต้เส้นขีดกลาง ค่าเฉลี่ย เปิดเผย
และค่าเฉลี่ยคะแนนเสียงสองครั้งของบุคคล
โอเค
นี่คือค่าเฉลี่ยของคะแนนโหวต
โอเค
ในลักษณะเดียวกันสำหรับ getter และ setter ทั้งหมด
ดังนั้นนี่คือตัวรับและศูนย์กลางของพวกเขาสำหรับสิ่งนั้น
ณ ตอนนี้ เราได้ตรวจสอบพวกเขาแล้ว
สร้างคลาสโมเดล และเราได้สร้างขึ้นแล้ว ตอนนี้เรามาเขียนทับสิ่งหนึ่งให้น้อยลง นั่นคือการเปรียบเทียบค่าเท่ากับแบบบูลีน
การยกเลิกคำสั่ง APT
เท่าเทียมกัน
และฉันจำเป็นต้องทำ
สมาชิก
ความกังวลของวัยรุ่น
ความวิตกกังวลเท่ากับและ hashCode.
ฉันไม่จำเป็นต้องใช้ hashCode
ฉันต้องหาของตัวเอง
หากโอเอชเท่ากับเท่ากับค่าว่าง ให้คืนค่าเป็นเท็จ
และถ้าทุกอย่างที่เท่ากันเท่ากับสิ่งนี้ ให้กลับไปที่ทำ ฉันจะคืนค่า false
โอเค
การตรวจสอบว่าเท่ากัน
และด้วยวิธีนี้เราก็เสร็จสิ้นแล้ว