1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài 5: Intent activity

25 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Intent activity
Tác giả Nguyễn Chí Hiếu
Trường học Trường Đại Học Công Nghệ Thông Tin - Đại Học Quốc Gia Hà Nội
Chuyên ngành Khoa học Máy Tính
Thể loại Bài giảng
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 25
Dung lượng 2,92 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Microsoft PowerPoint Bai 5 Intent 1132021 1132021 I N T E N T 1 NỘI DUNG 2 Gi ớ i thi ệ u Intent G ử i và nh ậ n d ữ li ệ u Activity Nh ậ nk ế t qu ả ph ả nh ồ it ừ Activity G ọ i các Activities c. • Activity con • Activity ứng dụng khác • Service

Trang 1

I N T E N T

NỘI DUNG

Giới thiệu Intent

Gửi và nhận dữ liệu Activity

Nhậnk ết quả phảnh ồit ừ Activity Gọi các Activities của Android

Trang 2

GIỚI THIỆU INTENT

• Một ứng dụng Android là tập hợp gồm nhiều Activity

• Các Activity này có thể gọi và truyền dữ liệu cho nhau thông qua một

Items Activity

Detail Activity

start

Resource

Trang 3

GIỚI THIỆU INTENT

• Intent là một thông điệp của người dùng gửi đến Android để yêu cầu

Android bắt đầu thực thi/hiển thị một Activity nào đó

Trang 4

GIỚI THIỆU INTENT

• Một số phương thức khởi tạo Intent

• Intent(String action)

• Intent(String action, Uri uri)

• Intent(Context packageContext, Class<?> class)

• Cung cấp thông tin về môi trường ứng dụng

và cho phép truy xuất tài nguyên của ứngdụng

• Lớp Activity được kế thừa từ Context

Context

ContextWrapper

ContextThemeWrapper

Activity

Trang 5

BẮT ĐẦU ACTIVITY

• Gọi Activity từ một Activity khác:

• Tường minh (explicit): chỉ định Activity bắt đầu tiếp theo

• Không tường minh (implicit): không cần chỉ định Activity bắt đầu Android tự động chọn Activity thực hiện phù hợp với tác vụ được yêu cầu

Trang 6

Context Items Activity

Trang 7

startActivity(intent);

1 2

12

ACTIVITY • Là một ngăn xếp ghi lại thứ tự các Activity đã gọi.

• Được dùng để gọi lại Activity trước Activity hiện tại.

13

BẮT ĐẦU & KẾT THÚC MỘT ACTIVITY

• Ví dụ 1 Trong MainActivity, thêm vào một Button và viết sự kiện onClick cho Button này như sau:

2021 13

Trang 8

Intent intent = new Intent(MainActivity.this,

Giới thiệu Intent Extra

Giới thiệu Bundle

Gửi và nhận dữ liệu Activity

Nhận kết quả phản hồi từ Activity

15

GIỚI THIỆU INTENT EXTRA

• Intent Extra là một cặp

khóa-giá trị, dùng gửi dữ liệu kèm

theo các Intent

Context

Activity 1

Context

Activity 2

“Id”: 101

“Name”: “Tom”

2 G Ử I V À N H Ậ N D Ữ L I Ệ U A C T I V I T Y

2021 15

Trang 9

• Khóa có kiểu dữ liệu dạng chuỗi.

Context

Gmail Activity

“EXTRA_EMAIL”:

admin@gmail.com

“EXTRA_SUBJECT”:

”Extras”

Trang 10

• Bundle

• Là một tập hợp (bó) chứa các cặp khóa-giá trị.

• Chỉ hỗ trợ các kiểu dữ liệu đơn giản:

boolean, int, string, …

Context

Gmail Activity

Trang 11

•Sử dụng Bundle

20

SỬ DỤNG INTENT EXTRA

• Một số phương thức gửi Intent Extra:

• putExtra(String key, int value)

• putExtra(String key, String value)

• putExtra(String key, boolean value)

Trang 12

• Lần lượt thêm các cặp khóa-giá trị vào Intent

22

SỬ DỤNG INTENT EXTRA

• Một số phương thức nhận Intent Extra:

• getIntExtra(String key, int defaultValue)

Trang 13

• Một số phương thức gửi và nhận dữ liệu của lớp bằng Bundle:

• putInt(String key, int value)

• putString(String key, String value)

Trang 15

• Cần quy định một

Request Code (mã yêu cầu)

để Source Activity

và Target Activity nhận được

yêu cầu và phản hồi chính

xác

2 8

28

NHẬN KẾT QUẢ PHẢN HỒI TỪ ACTIVITY

• Thông tin của yêu cầu và

Context

Activity 2

requestCode, intent

requrestCode, resultCode, intent

Trang 16

NHẬN KẾT QUẢ PHẢN HỒI TỪ ACTIVITY

• Source Activity gửi yêu cầu gồm:

• Intent: yêu cầu gọi Target Activity.

NHẬN KẾT QUẢ PHẢN HỒI TỪ ACTIVITY

• Target Activity phản hồi kết quả gồm:

Trang 17

NHẬN KẾT QUẢ PHẢN HỒI TỪ ACTIVITYContextContext

• Source Activity nhận kết quả Activity1 requrestCode, Activity2

• Request Code

• Result: kết quả trả về (OK, Canceled, FirstUser).

• Intent: phản hồi từ Target Activity.

• Ghi đè phương thức:

• onActivityResult(int requestCode,

Result result, Intent data)

Trang 18

NHẬN KẾT QUẢ PHẢN HỒI TỪ ACTIVITY

3 4

34

Trang 19

NHẬN KẾT QUẢ PHẢN HỒI TỪ ACTIVITY

2 0 2 1 3 5

35

• Giới thiệu Intent-Filters

• Bắt đầu Activity không tường minh

Trang 20

2 0 2 1

GIỚI THIỆU INTENT-FILTERS

• Intent-Filters là các bộ lọc Intent nhằm lọc ra những yêu cầu nào

• Khai báo hành động thực hiện: gửi mail, gọi điện, xem ảnh,

• Giá trị là một chuỗi: action.MAIN, action.VIEW, action.SEND, …

• Data

• Khai báo kiểu dữ liệu.

• Giá trị là một đường dẫn Uri hay kiểu dữ liệu MIME

• Categories

• Khai báo loại Intent.

3 8

38

Trang 21

GIỚI THIỆU INTENT-FILTERS

• Kết hợp giữa ACTION và DATA

Trang 22

2 0 2 1

BẮT ĐẦU ACTIVITY

KHÔNG TƯỜNG MINH

• Android tìm intent-filters trong AndroidManifest của tất cả

ứng dụng khác trên thiết bị.

• Nếu tìm thấy một Activity phù hợp thì bắt đầu Activity này.

• Ngược lại, nếu có nhiều Activity phù hợp, Android hiển thị

giao diện để người dùng chọn Activity bắt đầu.

41

BẮT ĐẦU ACTIVITY KHÔNG TƯỜNG MINH

• Trong AndroidManifest, khai báo intent-filter cho

MainActivity.

4 2

42

2017 41

Trang 23

43

BẮT ĐẦU ACTIVITY KHÔNG TƯỜNG MINH

BẮT ĐẦU ACTIVITY

KHÔNG TƯỜNG MINH

• Trong AndroidManifest , khai báo

intent-filter cho MainActivity.

• Khi có yêu cầu gửi một văn bản,

ứng dụng vừa tạo hiển thị trong

danh sách để người dùng chọn.

2021 43

Trang 24

TÀI LIỆU THAM KHẢO

1 J F DiMarzio “Beginning Android Programming with

Android Studio” Wrox 2016.

2 https://developer.android.com/

3 https://developer.android.com/studio

4 6

Trang 25

46

Ngày đăng: 21/09/2022, 21:28

w