WEBVTT

1
00:00.380 --> 00:06.560

หลังจากที่เราสร้างคลาสอะแดปเตอร์สำเร็จแล้ว

2
00:06.560 --> 00:11.670

ให้เราไปที่กิจกรรมรายการวารสารเพื่อดึงวารสารทั้งหมดและแสดงในมุมมองรีไซเคิล

3
00:11.690 --> 00:20.450
ดังนั้นฉันจำเป็นต้องใช้การยืนยันตัวตนของ
Firebase
เพราะฉันต้องการทราบสถานะปัจจุบันของผู้ใช้

4
00:20.450 --> 00:28.280

และในภายหลังจะทำการเพิ่มฟังก์ชันการออกจากระบบสำหรับผู้ใช้
Firebase ส่วนตัว

5
00:28.280 --> 00:29.870
รวมถึงตัวฟังและผู้ใช้ Firebase

6
00:34.930 --> 00:39.970
จากนั้นฉันต้องสร้างอินสแตนซ์ Firebase
สำหรับ Firestore

7
00:44.580 --> 00:49.830
และที่นี่ฉันจำเป็นต้องสร้างการอ้างอิง
Firebase Storage

8
00:49.830 --> 00:55.560
กรุณาตั้งใจกับฉันด้วย
เพราะเราจะใช้ที่เก็บข้อมูลเพื่อดึงภาพออกมา

9
00:59.150 --> 01:06.950
ฉันจะเริ่มต้นด้วยรายการส่วนตัว
เพราะฉันจะรวบรวมบันทึกทั้งหมดและแสดงในมุมมองสำหรับรีไซเคิล
จากนั้นจัดเก็บไว้ในโครงสร้างข้อมูลประเภทรายการ

10
01:06.950 --> 01:13.040
คือ รายการบันทึก

11
01:13.040 --> 01:17.630
และที่นี่ใน Firebase Firestore
ฉันต้องเพิ่มการอ้างอิงคอลเลกชัน

12
01:17.630 --> 01:23.450
ดังนั้น
การอ้างอิงจากคอลเลกชันส่วนตัวจะเท่ากับ DB
ตามด้วยจุดและชื่อคอลเลกชัน

13
01:23.450 --> 01:26.960
และที่นี่ฉันจำเป็นต้องระบุโหนดของวารสาร

14
01:26.960 --> 01:29.360
จากนั้นเพิ่มรีไซเคิลเลอร์วิว

15
01:29.360 --> 01:33.470
ดังนั้นวิดเจ็ตมุมมองรีไซเคิลส่วนตัว
มุมมองรีไซเคิล

16
01:33.470 --> 01:37.010
และฉันต้องสร้างอินสแตนซ์จากอะแดปเตอร์

17
01:37.010 --> 01:40.070
อะแดปเตอร์ของฉัน อะแดปเตอร์ของฉัน

18
01:40.070 --> 01:46.310
จากนั้นเราต้องย้ายไปที่เมธอด Oncreate
เพื่อเริ่มการกำหนดค่าเริ่มต้นให้กับตัวแปรและการอ้างอิงต่างๆ

19
01:46.310 --> 01:48.440
ฉันจะเริ่มต้นด้วย Firebase OAuth

20
01:52.770 --> 01:54.420
จากนั้นวิดเจ็ต

21
02:01.140 --> 02:04.680
และเราจะทำการเริ่มต้นรายการอาร์เรย์โพสต์

22
02:07.600 --> 02:11.590
เราเสร็จสิ้นกับเมธอด Oncreate แล้ว

23
02:11.620 --> 02:15.700
ตอนนี้เรามาเลื่อนและเพิ่มเมนูกัน

24
02:15.700 --> 02:18.620
ดังนั้นที่นี่เราจะสร้างเมนู

25
02:18.640 --> 02:20.920
สำหรับเรื่องนั้น ฉันจะไปที่โปรเจกต์

26
02:20.920 --> 02:26.140
และที่นี่ในโฟลเดอร์ทรัพยากร
ผมจะสร้างไดเรกทอรีทรัพยากร Android ใหม่

27
02:26.140 --> 02:27.910
และฉันจะเลือกเมนู

28
02:27.910 --> 02:30.880
คลิกตกลง และโฟลเดอร์เมนูจะถูกสร้างขึ้น

29
02:30.880 --> 02:34.690
จากนั้นสร้างไฟล์ทรัพยากรเมนูชื่อ my menu

30
02:36.440 --> 02:41.540
ฉันจะสร้างสองรายการภายในไฟล์เมนูนี้

31
02:53.260 --> 02:59.920

ดังนั้นคุณสมบัตินี้สำหรับรายการจะกำหนดรหัสเฉพาะให้กับรายการเมนู

32
02:59.920 --> 03:04.390
ID
นี้สามารถใช้เพื่ออ้างอิงรายการเมนูในโค้ด
Java หรือ Kotlin ได้

33
03:04.390 --> 03:12.430
เมื่อจัดการการคลิกที่รายการเมนู และ
Android icon
เป็นแอตทริบิวต์ที่ใช้กำหนดไอคอนสำหรับรายการเมนู
และในกรณีนี้

34
03:12.430 --> 03:20.050
ใช้ไอคอนระบบ Android ที่มีอยู่แล้วชื่อว่า
IK menu add

35
03:20.050 --> 03:23.710

นี่จะอ้างถึงสำหรับชื่อเมนูที่สร้างขึ้นในตัว

36
03:23.710 --> 03:29.350

คุณสมบัตินี้หรือชุดคุณสมบัตินี้กำหนดป้ายข้อความสำหรับรายการเมนู

37
03:29.350 --> 03:35.860

ระบุข้อความที่จะแสดงควบคู่กับไอคอนในเมนูของแอป

38
03:35.860 --> 03:38.380
ใน Android แสดงเป็นแอคชัน

39
03:38.380 --> 03:46.180

คุณสมบัตินี้เป็นของคุณสมบัติเฉพาะของไลบรารี
Appcompat

40
03:46.180 --> 03:49.210

และใช้เพื่อระบุวิธีการแสดงรายการเมนูในแถบการกระทำหรือแถบแอป

41
03:49.210 --> 03:50.260
หากมีห้อง

42
03:50.260 --> 03:54.820

หากห้องบ่งชี้ว่าควรแสดงรายการเมนูในแถบการดำเนินการ

43
03:54.820 --> 03:56.770
หากมีที่ว่างเพียงพอ

44
03:56.770 --> 04:01.900
หากไม่มีพื้นที่เพียงพอ
อาจถูกซ่อนอยู่ในเมนูเพิ่มเติม

45
04:01.900 --> 04:04.600
จากนั้นฉันจะสร้างรายการใหม่ที่นี่

46
04:04.600 --> 04:09.940
ชื่อเรื่อง หมายเลขประจำตัวผู้ออกจากระบบ
คือ คะแนนการดำเนินการ

47
04:09.940 --> 04:13.450
ลงชื่อออกและแสดงเป็นการดำเนินการ

48
04:13.450 --> 04:20.080
เมื่อคุณตั้งค่าแอปให้แสดงเป็น
"แสดงเป็นแอคชั่น" ไม่เคย

49
04:20.080 --> 04:26.470
สำหรับรายการเมนูใน Android
คุณกำลังระบุว่ารายการเมนูนี้ไม่ควรแสดงในแถบแอคชั่นหรือแถบแอป

50
04:26.470 --> 04:33.400
แทนที่จะเป็นเช่นนั้น
มันจะถูกวางไว้ในเมนูโอเวอร์โฟลว์เสมอ

51
04:33.430 --> 04:40.660

ซึ่งสามารถเข้าถึงได้ผ่านไอคอนจุดสามจุดที่ตั้งอยู่ที่มุมขวาบนของบาร์แอคชั่น
ดังนั้นคุณสามารถเห็นเครื่องหมายบวกที่นี่เพื่อเพิ่มบันทึกประจำวัน

52
04:40.660 --> 04:42.910
และจุดสามจุด

53
04:42.910 --> 04:46.420
หากคุณคลิกที่มัน จะแสดงรายการออกจากระบบ

54
04:46.450 --> 04:49.240
กลับไปที่รายการวารสาร

55
04:49.240 --> 04:56.650
และที่นี่เราจำเป็นต้องระบุเมนูของเรา
ในเมนูตัวเลือก Oncreate
ฉันจะเขียนทับอันนี้

56
04:56.650 --> 05:02.830
และที่นี่ฉันต้องใช้ get menu inflator dot
inflate

57
05:02.830 --> 05:09.160
และที่นี่ฉันต้องขยายจุดเมนูของเรา
จุดเมนูของฉัน และฉันตั้งชื่อว่าเมนู

58
05:09.190 --> 05:18.790
หากผู้ใช้คลิกที่ไอคอนใด ๆ ของสิ่งเหล่านี้

59
05:18.790 --> 05:19.270

หรือเครื่องหมายลบหรือเครื่องหมายบวกของสิ่งเหล่านี้
เราจำเป็นต้องจัดการกับมัน

60
05:19.270 --> 05:28.300
ดังนั้นเมื่อมีการเลือกตัวเลือกในรายการ
ฉันจำเป็นต้องสร้างสวิตช์เพื่อรับ ID
ของรายการนั้น
เพราะที่นี่ฉันได้ระบุการดำเนินการ

61
05:28.300 --> 05:32.860
ID เป็นเพิ่ม และที่นี่ฉันระบุการดำเนินการ
ID เป็นออกจากระบบ

62
05:32.890 --> 05:38.230

เราจำเป็นต้องอ้างอิงรายการเหล่านี้และอนุญาตให้ผู้ใช้สามารถคลิกได้

63
05:38.230 --> 05:41.500
สลับ AR หรือจุดไอเทม

64
05:41.500 --> 05:42.850
รับรหัสไอเทม

65
05:42.940 --> 05:49.270

เราต้องเริ่มต้นด้วยกรณีแรกที่ผู้ใช้คลิกที่เพิ่มบันทึก

66
05:49.270 --> 05:53.860
ดังนั้น r.id dot action underscore add.

67
05:53.860 --> 05:57.880
ฉันต้องนำผู้ใช้ไปยังกิจกรรมในวารสาร

68
05:57.880 --> 06:08.530
ดังนั้นหากผู้ใช้ไม่เท่ากับ null
และมีการยืนยันตัวตน
เราจำเป็นต้องเริ่มกิจกรรมหรือสร้าง intent

69
06:08.530 --> 06:20.110
ที่เท่ากับ new intent journal

70
06:20.110 --> 06:20.770
activity dot this
และเราต้องนำมันไปยังกิจกรรมเพิ่มบันทึก

71
06:20.770 --> 06:23.710
และนี่คือกิจกรรมที่เราจะสร้างขึ้นตอนนี้

72
06:29.800 --> 06:31.370
สร้างกิจกรรมใหม่

73
06:31.390 --> 06:37.020
ล้างกิจกรรมมุมมองว่างและฉันจะตั้งชื่อว่า
กิจกรรมบันทึกเพิ่มเติม

74
06:37.030 --> 06:37.960
คลิก Enter

75
06:37.960 --> 06:44.200
ในวิดีโอถัดไป

76
06:44.200 --> 06:45.670

เราจะสร้างเลย์เอาต์สำหรับกิจกรรมนี้และเพิ่มฟังก์ชันการทำงานสำหรับการเพิ่มบันทึกใหม่

77
06:45.670 --> 06:48.160
จากนั้นเราจำเป็นต้องใช้การหยุดพัก

78
06:48.190 --> 06:50.620
จากนั้นเราจำเป็นต้องทดสอบในกรณีนี้

79
06:50.620 --> 06:51.550
หมายเลขสอง

80
06:51.550 --> 06:56.920
หากมันเท่ากับเครื่องหมายการลงชื่อเข้าใช้
แสดงว่าเราต้องลงชื่อออกจากระบบผู้ใช้

81
06:56.920 --> 07:00.670
ดังนั้น หากผู้ใช้ไม่เท่ากับค่าว่าง

82
07:03.110 --> 07:06.130
Firebase auth จุด ออกจากระบบ

83
07:06.140 --> 07:11.120

นี่คือวิธีการที่ใช้ในการออกจากระบบผู้ใช้จาก
Firebase

84
07:11.120 --> 07:14.090
และเราจำเป็นต้องแนะนำผู้ใช้รายนี้

85
07:14.210 --> 07:17.720
และที่นี่เราไม่ได้ใช้การเริ่มกิจกรรม

86
07:17.750 --> 07:25.730
อุ๊ย ฉันและที่นี่ฉันต้องสร้าง I เท่ากับ
new intent journal list activity dot this.

87
07:25.730 --> 07:30.680

และเราต้องนำผู้ใช้ไปยังหน้าเข้าสู่ระบบและกิจกรรมหลัก

88
07:30.680 --> 07:32.810
และอย่าลืมใช้เบรกด้วย

89
07:32.810 --> 07:33.980
ทำความสะอาดโปรเจ็กต์

90
07:33.980 --> 07:35.180
และนี่ก็เริ่มแล้ว

91
07:35.180 --> 07:43.040

จากนั้นสิ่งสุดท้ายที่เราต้องทำคือกลับไปที่เมนูตัวเลือก

92
07:43.040 --> 07:45.110
เลือกมันแล้วฉันต้องผ่านมันไป

93
07:48.130 --> 07:56.740

และหากข้อผิดพลาดยังคงอยู่สำหรับกรณีที่จำเป็นต้องส่งค่าคงที่ที่ต้องการ

94
07:56.740 --> 07:57.730
เราจะได้ผลลัพธ์ดังนี้

95
07:57.760 --> 08:10.420
เราสามารถเก็บค่า int ที่เท่ากับ item dot
ได้, รับ ID ของ item

96
08:10.420 --> 08:11.290
หรือ item id และฉันสามารถแทนที่ switch
ด้วย if statement ได้

97
08:11.290 --> 08:21.130
ดังนั้น หาก id ของรายการเท่ากับ r.id จุด
action add ฉันสามารถรันบรรทัดโค้ดนี้ได้

98
08:21.130 --> 08:25.660
และในทำนองเดียวกัน ฉันจะตรวจสอบ else if
ด้วย

99
08:29.800 --> 08:35.770
รหัสไอเท็มเท่ากับ r.id จุด action signout

100
08:35.800 --> 08:40.150
เราต้องคัดลอกนี้และตัดมัน

101
08:40.150 --> 08:41.290
และนี่ก็เริ่มแล้ว

102
08:41.290 --> 08:48.250

ดังนั้นเมื่อใดก็ตามที่คุณพบข้อผิดพลาดนี้และมีหลายคนถามฉันเกี่ยวกับข้อผิดพลาดนี้
โปรดแปลงสวิตช์เป็นคำสั่ง if

103
08:48.280 --> 08:51.310
และ else แทน


