Truyền dữ liệu giữa 2 fragment trong android

Truyền dữ liệu giữa 2 fragment trong android
5 (100%) 5 Hài lòng

Bối cảnh

Ngữ cảnh là có 1 Activity chứa 2 fragment, 1 cái bên trên và 1 cái bên dưới, cả 2 fragment được tạo ra trong xml (không phải bằng java code). Fragment 1 chứa 1 cái input và 1 cái nút, người dùng sẽ nhập vào input và khi click nút thì sẽ setText cho TextView ở Fragment 2.

Tư tưởng

Để truyền dữ liệu giữa 2 fragment ta cần làm như sau: Fragment 1 truyền cho  Activity, sau đó Activity truyền cho Fragment 2

Tại sao phải làm thế? Vì tính chất của activity và fragment. Không phải fragment 2 kia lúc nào cũng tồn tại trong host activity vì vậy ta phải chắc chắn fragment 2 tồn tại thì mới truyền.

Cách làm

Tạo 1 Interface sau đó bắt Activity chính lắng nghe sự kiện từ Interface đó, sau đó ở Fragment thứ nhất gọi hàm trong Interface và truyền dữ liệu cho hàm bên Activity, từ Activity tạo đối tượng Fragment 2 và gọi hàm trong Fragment setText cho nó,

Chi tiết Code

Tạo Interface CommunicationInterface.java

Tạo Activity CommunicationActivity.java

Implement cái interface mà đã nói bên trên sau đó override hàm onClickTopFragment  bắt buộc. Ở đây tạo luôn một đối tượng Fragment muốn gửi dữ lệu đến.

Tạo Fragmetn 1 SubTop.java

Override hàm onAttach để kiểm tra xem cái Activity hện tại đã implement cái interface kia hay chưa.

Cùng với đó xử lí nút khi click và gọi hàm onClickTopFragment cho Activity nghe thấy.

Tao Fragment 2 SubBottom.java

Bên Fragment nà chỉ việc setText thôi.

Tham khảo thêm trên Stackoverflow tại link này

Ngoài ra:

Các bài viết không xem thì tiếc:

Chia sẻ là sexy

Đô Trịnh

Một lập trình viên vui vẻ, hòa đồng, luôn sống tích cực và anh ấy quay tay khỏe và khéo trong môn bi lắc :) Xem thêm thông tin tại trang -> Giới thiệu

Có 2 bình luận trong bài viết “Truyền dữ liệu giữa 2 fragment trong android”

Thảo luận