Bài giảng Lập trình di động - Bài 5: Intent và cơ chế trao đổi dữ liệu giữa các thành phần trong android, cung cấp cho người học những kiến thức như: Giới thiệu về intent; Intent tường minh vs ngầm định; Các thành phần của intent; Sử dụng intent để trao đổi dữ liệu. Mời các bạn cùng tham khảo!
LẬP TRÌNH DI ĐỘNG Bài 5: Intent chế trao đổi liệu thành phần android Nhắc lại trước ▪Các điều khiển hữu ích: ProgressBar, Progress Dialog, AutoComplete TextView, TimePicker, TimePicker Dialog, DatePicker, DatePicker Dialog, ListView, Spinner, WebView ▪Quá trình xây dựng giao diện: Thiết lập giao diện XML Cái khơng dùng XML viết onCreate Thiết lập liệu cho điều khiển Viết hàm xử lý kiện cho điều khiển ▪Vài kiểu viết mã xử lý kiện Nội dung Giới thiệu intent Intent tường minh vs ngầm định Các thành phần intent ▪ ▪ ▪ ▪ ▪ Action & Data Category Type Component Extras Sử dụng intent để trao đổi liệu Intent filter Phần Giới thiệu intent Intent & Intent Service ▪Intent chuẩn giao tiếp thành phần Android OS (activity, service, provider, receiver) ▪Intent service dịch vụ hệ thống, vai trò người đưa thư: chuyển intent tới thành phần nhận phù hợp (chiếu theo địa ghi intent) ▪Intent giống thư: thơng tin cần thiết đóng gói bên intent (địa + nội dung) Phần Intent tường minh vs ngầm định 16 Intent tường minh (explicit) ▪Sử dụng thành phần component để định rõ đối tượng thực thi ▪Sử dụng phương thức: ▪ ▪ ▪ ▪ setComponent(ComponentName) setClass(Context, Class) setClassName(Context, String) setClassName(string, string) ▪Chỉ dùng để gọi activity ứng dụng ▪Dữ liệu trao đổi nên chuyển vào phần extras 17 Intent ngầm định (implicit) ▪Dùng thành phần action, category,… ▪Hệ thống tự động xác định đối tượng phù hợp để đáp ứng với Intent (theo nguyên tắc “phân giải intent” trình bày slide 14) ▪Dùng để giao tiếp với dịch vụ hệ thống dịch vụ bên thứ ba cung cấp: ▪ Gọi activity: startActivity / startActivityForResult ▪ Gọi service: startService / bindService ▪ Gửi boardcast: sendBoardcast / sendOrderedBoardcast / setStickyBoardcast 19 Intent ngầm định (implicit) Một số trường hợp sử dụng implicit intent 20 Các action định nghĩa sẵn 21 Trao đổi intent activity ▪Dữ liệu đóng gói vào intent ▪ Lựa chọn liệu đưa vào intent phù hợp ▪ Có chuẩn trao đổi liệu chung để dễ xử lý ▪Sau gọi activity phù hợp để xử lý ▪ startActivity(myIntent); ▪Nếu muốn nhận kết trả dùng ▪ startActivityForResult(myIntent, CODE); ▪ Trong CODE số nguyên, dùng để phân biệt kết trả activity khác ▪ Xử lý cách viết lại hàm onActivityResult Trao đổi intent activity ▪Về phía bên activity nhận, lấy intent gửi cho getIntent() ▪Nếu cần trả kết cho activity trước ▪ Thông báo thất bại: setResult(RESULT_CANCELED); ▪ Thông báo thành cơng: setResult(RESULT_OK, x); • Với x intent mà trả ngược lại cho activity gọi • Cần đưa liệu vào x trước setResult • Việc đưa liệu sử dụng hàm putExtra) ▪ Chú ý trường hợp liệu phức tạp: putSerializable 10 Thảo luận 12 11 11 Tại ActivityMain Sự kiện click nút lệnh chỉnh sửa gọi đến hàm OpenEdit() Hàm OpenEdit() thực mở EditActivity, gửi nội dung tvNote có yêu cầu kết trả 12 Hàm onActivityResult() xử lý kết trả từ EditActivity • onActivityResult() hàm có sẵn activity • REQUEST_CODE_EDIT tham số tồn cục tự khai báo • RESULT_OK số có sẵn 12 Tại EditActivity Hàm getData() – đặt vào onCreate activity thực lấy liệu gửi đến hiển thị lên edtEdit Xử lý kiện click cho nút HỦY 12 Xử lý kiện click cho nút LƯU 12 Quay lại ứng dụng UocChung – thực việc trả kết cho activity nhập liệu sau tính xong giá trị ước chung bội chung 12 Phần Intent filter 13 Intent filter (bộ lọc intent) • Là thành phần giúp cho hệ thống Android biết ứng dụng bạn làm • Activity, Service Broadcast receiver sử dụng intent filter để thông báo cho hệ thống biết dạng intent mà xử lý 14 Intent filter (bộ lọc intent) • Phân giải intent (intent resolution): nhận intent, hệ thống tiến hành chọn activity phù hợp với intent theo ưu tiên sau – Action intent: mô tả hành động thực Ở mơ tả ứng dụng xử lý hành động liên quan tới gửi liệu – Category intent: mặc định – data: thẻ nói rõ cho hệ thống biết nhận hành động liên quan tới gửi tin nhắn sms Thuộc tính scheme nhận giá trị như: http, https, ftp, content,… 14 ... hiển thị hình ImageView Phần Sử dụng intent để trao đổi liệu Trao đổi intent activity ? ?Dữ liệu đóng gói vào intent ▪ Lựa chọn liệu đưa vào intent phù hợp ▪ Có chuẩn trao đổi liệu chung để dễ xử lý... setStickyBoardcast 19 Intent ngầm định (implicit) Một số trường hợp sử dụng implicit intent 20 Các action định nghĩa sẵn 21 Phần Các thành phần intent 22 Các thành phần Intent 23 Các thành phần Intent ▪Component... ngầm định Các thành phần intent ▪ ▪ ▪ ▪ ▪ Action & Data Category Type Component Extras Sử dụng intent để trao đổi liệu Intent filter Phần Giới thiệu intent Intent & Intent Service ? ?Intent chuẩn