- vừa được xem lúc

Truyền dữ liệu giữa các Fragment khi sử dụng Navigation Components

0 0 48

Người đăng: Thanh Ngo

Theo Viblo Asia

Mở đầu

  • Việc sử dụng Library để navigation giữa các màn với nhau, đã giúp ích cho các dev đặc biệt là những newbie rất nhiều vì nó kiểu như mì ăn liền import rồi sử dụng, nhưng cũng đem lại 1 hạn chế đó chế đó là các bạn quên mất và không biết nguồn gốc của nó, ví dụ như vấn đề mình sẽ đề cập trong bài viết này, Với những bạn mới tiếp xúc với thư viện mới như Navigation Components thì việc truyền dữ liệu qua lại giữa các fragment là vô cùng mới mẻ và khác lạ. Với bài viết ngày hôm nay, bây giờ mình sẽ hướng dẫn các bạn truyền dữ liệu qua lại fragment khi sử dụng Navigation Components nhé. Trước khi đọc bài này mình nên nghĩ các bạn nên có kiến thức 1 xíu về Bundle,Arguments trong Android.

Cài đặt

  • Để thao tác và làm theo hướng dẫn của mình thì các bạn cần import 1 số thứ nhé, và đặc biệt các bạn phải biết và đã sử dụng Navigation Components, mình cũng có 1 bài hướng dẫn sử dụng NV các bạn có thể tham khảo nhé ✌️ *Để chuyển dữ liệu giữa các đích, trước tiên hãy xác định đối số bằng cách thêm đối số vào đích nhận nó bằng cách làm theo các bước sau:
  1. Trong Navigation editor Điều hướng , bấm vào đích nhận đối số.
  2. Trong bảng Attributes , nhấp vào Thêm ( + ).
  3. Trong cửa sổ Add Argument Link đối số xuất hiện, hãy nhập tên đối số, loại đối số, đối số có thể null hay không và giá trị mặc định, nếu cần.
  4. Nhấp vào Add . Lưu ý rằng đối số bây giờ xuất hiện trong danh sách Arguments trong bảng Attributes .
  5. Tiếp theo, nhấp vào hành động tương ứng đưa bạn đến điểm đến này. Trong bảng Attributes , bây giờ bạn sẽ thấy đối số mới được thêm của mình trong phần Argument Default Values .
  6. Bạn cũng có thể thấy rằng đối số đã được thêm vào trong XML. Nhấp vào tab Văn bản để chuyển sang chế độ xem XML và nhận thấy rằng đối số của bạn đã được thêm vào đích nhận đối số. Một ví dụ đã được biểu diễn ở dưới:
 <fragment android:id="@+id/myFragment" > <argument android:name="myArg" app:argType="integer" android:defaultValue="0" /> </fragment>

*Supported argument types: -Thư viện điều hướng hỗ trợ các loại đối số sau: Nếu kiểu đối số hỗ trợ giá trị null, bạn có thể khai báo giá trị mặc định là null bằng cách sử dụng android: defaultValue = "@ null".

Khi bạn chọn một trong các kiểu tùy chỉnh, hộp thoại Select Class sẽ xuất hiện và nhắc bạn chọn lớp tương ứng cho kiểu đó. Tab Project cho phép bạn chọn một lớp từ dự án hiện tại của bạn.

Bạn có thể chọn <inferred type> để thư viện Điều hướng xác định kiểu dựa trên giá trị được cung cấp.

Bạn có thể kiểm tra Array để chỉ ra rằng đối số phải là một mảng của giá trị Typeđã chọn. Lưu ý những điều dưới đây:

Mảng enums và mảng tham chiếu tài nguyên không được hỗ trợ. Mảng hỗ trợ giá trị nullable, bất kể hỗ trợ giá trị nullable của kiểu cơ bản. Ví dụ: sử dụng app: argType = "integer []" cho phép bạn sử dụng app: nullable = "true" để chỉ ra rằng việc truyền một mảng null là có thể chấp nhận được. Mảng hỗ trợ một giá trị mặc định duy nhất, "@null". Mảng không hỗ trợ bất kỳ giá trị mặc định nào khác. *Override a destination argument in an action: -Các đối số cấp độ đích và giá trị mặc định được sử dụng bởi tất cả các hành động điều hướng đến đích. Nếu cần, bạn có thể ghi đè giá trị mặc định của một đối số (hoặc đặt một đối số nếu nó chưa tồn tại) bằng cách xác định một đối số ở cấp hành động. Đối số này phải cùng tên và cùng kiểu với đối số được khai báo trong đích.

XML bên dưới khai báo một hành động với đối số ghi đè đối số cấp đích từ ví dụ trên:

<action android:id="@+id/startMyFragment" app:destination="@+id/myFragment"> <argument android:name="myArg" app:argType="integer" android:defaultValue="1" />
</action>

*Use Safe Args to pass data with type safety

Bình luận

Bài viết tương tự

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 1: Làm quen cô nàng Flutter

Lời mở đầu. Gần đây, Flutter nổi lên và được Google PR như một xu thế của lập trình di động vậy.

0 0 254

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 3: Lột trần cô nàng Flutter, BuildContext là gì?

Lời mở đầu. Màn làm quen cô nàng FLutter ở Phần 1 đã gieo rắc vào đầu chúng ta quá nhiều điều bí ẩn về nàng Flutter.

0 0 189

- vừa được xem lúc

[Android] Hiển thị Activity trên màn hình khóa - Show Activity over lock screen

Xin chào các bạn, Hôm nay là 30 tết rồi, ngồi ngắm trời chờ đón giao thừa, trong lúc rảnh rỗi mình quyết định ngồi viết bài sau 1 thời gian vắng bóng. .

0 0 93

- vừa được xem lúc

Tìm hiểu Proguard trong Android

1. Proguard là gì . Cụ thể nó giúp ứng dụng của chúng ta:. .

0 0 82

- vừa được xem lúc

Làm ứng dụng học toán đơn giản với React Native - Phần 6

Chào các bạn một năm mới an khang thịnh vượng, dồi dào sức khỏe. Lại là mình đây Đây là link app mà các bạn đang theo dõi :3 https://play.google.com/store/apps/details?id=com.

0 0 51

- vừa được xem lúc

20 Plugin hữu ích cho Android Studio

1. CodeGlance. Plugin này sẽ nhúng một minimap vào editor cùng với thanh cuộn cũng khá là lớn. Nó sẽ giúp chúng ta xem trước bộ khung của code và cho phép điều hướng đến đoạn code mà ta mong muốn một cách nhanh chóng.

0 0 301