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

Bai 4 activity fragment

29 2 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

Định dạng
Số trang 29
Dung lượng 8,27 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 4 Activity Fragment pptx 20092021 20092021 20092021 ACTIVITY FRAGMENT 1 1 Giới thiệu Activity 2 Vòng đời của Activity 3 Gửi nhận dữ liệu giữa các Activity 4 Tích hợp F. 1. Giới thiệu Activity 2. Vòng đời của Activity 3. Gửi nhận dữ liệu giữa các Activity 4. Tích hợp Fragment vào Activity

Trang 1

1 Giới thiệu Activity

2 Vòng đời của Activity

3 Gửi nhận dữ liệu giữa các Activity

4 Tích hợp Fragment vào Activity

ACTIVITY

& FRAGMENT

Trang 3

• Activity định nghĩa một giao diện (UI - User Interface) để hiển thị các điều khiển: Button, EditText, ListView,

• Người dùng tương tác với Activity để thực hiện một tác vụ nào đó như: gọi điện, gửi tin nhắn, gửi mail, …

Trang 4

• Khi tạo dự án mới, Android Studio sẽ tự động tạo một

Activity mặc định (MainActivity) • Tạo mới Activiy

• NameActivity.java (viết mã nguồn xử lý cho

setContentView(R.layout activity_main ); } }

7

MainActivity.java • Thiết kế giao diện của Activity

2021 7

Trang 5

CẤU HÌNH ACTIVITY TRONG ANDROIDMANIFEST

• Trong AndroidManifest.xml, Activity phải được khai báo giữa cặp thẻ

<application> … </application>

9

2021 9

Trang 6

CẤU HÌNH ACTIVITY TRONG ANDROIDMANIFEST

• Activity nào khai báo action là android.intent.action.MAIN sẽ được chạy đầu tiên.

1 0

10

KHÁI NIỆM CONTEXT

• Khái niệm Context

• Cung cấp thông tin về ngữ cảnh hiện tại của ứng dụng, Activity, Service và cho phép truy xuất tài nguyên ứng dụng.

• Hai loại Context cơ bản

Trang 7

KHÁI NIỆM CONTEXT

• Application: gắn liền với vòng đời của một ứng dụng

• getApplicationContext(), getApplication()

Toast.makeText( getApplicationContext(),

"Thông báo", Toast.LENGTH_LONG ).show();

• Activity: gắn liền với vòng đời của một Activity

• getBaseContext(), <Tên lớp Activity>.this

• getActivity() lấy Activity liên kết với Fragment

Trang 8

V Ò N G Đ Ờ I

A C T I V I T Y

Trang 10

ACTIVITY LIFECYCLE

2021 15

VÒNG ĐỜI CỦA ACTIVITY

• Các phương thức trong vòng đời của Activity:

Trang 11

• Dùng để khởi tạo các biến, điều khiển, hay dữ liệu tĩnh …

• Tham số là một kiểu Bundle dùng để chuyển đổi thông tin giữa các Activity với nhau

• Được gọi khi ứng dụng bắt đầu tương tác người sử dụng.

• Thường được override trong trường hợp: lắng nghe các sensor (cảm biến), GPS, các cảnh báo, …

• onPause()

• Gọi khi hệ thống kích hoạt một activity khác

1 8

Trang 12

VÒNG ĐỜI CỦA ACTIVITY

•onStop()

•Được gọi khi người dùng không tương tác Activity trong thời gian dài

•Một Activity mới được chạy hay Activity hiện tại bị hủy

• Active (Created, Started, Resumed): activity đang chạy trên màn hình (foreground)

• Paused: khi một activity mất focus nhưng vẫn đang chạy trên màn hình (background– not focus)

• Stopped: khi một activity bị che khuất hoàn toàn bởi một activity khác (background – not visible)

Trang 13

• Destroyed: khi một activity đang Paused hay Stopped, hệ thống có thể xóa activity

ấy nếu cần (empty)

CHUYỂN TRẠNG THÁI TRONG ACTIVITY

• Các Activity được quản lý bởi một ngăn xếp (back stack)

• Khi ứng dụng mở lên, Activity chính được chạy và thêm vào đỉnh stack.

• Tất cả các Activity khác chuyển về trạng thái dừng hoạt động.

Trang 14

• Khi đóng một Activity thì nó sẽ bị hủy khỏi đỉnh stack và activity kế tiếp trong stack sẽ chuyển trạng thái tạm dừng sang hoạt động.

Trang 15

CHUYỂN TRẠNG THÁI TRONG

ACTIVITY

• Ví dụ: Một Activity khác được gọi, Activity hiện tại

sẽ thực hiện:

onPause() 1.

2 onStop()

24

Trang 16

CHUYỂN TRẠNG THÁI

CỦA ACITIVITY

• Ví dụ: Một Activity khác được gọi và Activity hiện tại

không hiển thị trong thời gian dài Gọi lại Activity

trước đó:

onRestart() 1.

onStart() 2.

onResume() 3.

2021 25

Trang 17

CHUYỂN TRẠNG THÁI TRONG ACTIVITY

• Ví dụ: Tạo một dự án mới và đặt tên ExLifeCycle.

• Trong MainActivity.java, override tất cả các phương thức chuyển trạng thái của Activity.

@Override protected void onStart() { super.onStart();

Log d ("[Activity Lifecycle]:", "onStart()"); }

Trang 18

CHUYỂN TRẠNG THÁI TRONG ACTIVITY

• Ví dụ: Tạo một dự án mới và đặt tên ExLifeCycle.

• Trong MainActivity.java, override tất cả các phương thức chuyển trạng thái của Activity.

• Thêm dòng lệnh hiển thị Log.

@Override

protected void onStart() { super.onStart();

Log.i("[Activity Lifecycle]:", "onStart()"); }

• Điện thoại có cuộc gọi đến.

• Nhiều trường hợp cần lưu trạng thái trước khi thoát ứng dụng.

29

Trang 19

"onRestoreInstanceState()"); mCounter = savedInstanceState.getInt("counter");

Log.i("[Activity restored]", String.valueOf(mCounter)); }

phục lại trạng thái của

Acitivity sau khi quá trình

khởi tạo hoàn tất.

onRestoreInstanceState()

30

Trang 20

QUẢN LÝ CÁC TRẠNG THÁI

• Xoay màn hình máy ảo.

3 2

32

Trang 21

• Giới thiệu Fragment

• Vòng đời của Fragment

• Quản lý Fragment trong Activity

33

GIỚI THIỆU FRAGMENT

• Fragment là một thành phần của ứng dụng có vòng đời và giao diện riêng tương tự như một Activity

• Phải được tích hợp vào một Activity nào đó và mỗi Activity có thể chứa nhiều Fragment.

• Fragment có thể tái sử dụng giúp tạo giao diện Activity linh động hơn.

3 4

34

Trang 22

KHÁI NIỆM FRAGMENT

gọi một số phương thức chuyển

trạng thái của Fragment

36

Trang 23

37

QUẢN LÝ FRAGMENT TRONG ACTIVITY

• Ví dụ 7 ThêmFragment

• Tạo một dự ánmới và đặt tênExFragment

• Chọnres\New\Fragment\Fragment (Blank )

2021 37

Trang 24

QUẢN LÝ FRAGMENT TRONG ACTIVITY

• Trong fragment_menu.xml, thêm vào đoạn mã sau:

38

Trang 25

TÍCH HỢP FRAGMENT • Cách 1 [Khai báo tĩnh]:

Activity

Fragment

1 Fragment 2

Fragment 3

Trang 26

QUẢN LÝ FRAGMENT TRONG ACTIVITY

Trang 27

• Trong activity_main.xml, thêm id cho Activity là activityMain.

• Trong MainActivity.java, thêm đoạn mã tích hợp Fragment vào.

@Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//

FragmentManager manager = getSupportFragmentManager(); FragmentTransaction

transaction = manager.beginTransaction(); transaction.add(R.id.activityMain, new

MenuFragment()); transaction.commit();

}

4 4

44

Trang 28

BÀI TẬP

• Cài đặt ứng dụng Quiz với câu hỏi trắc nghiệm:

• Câu hỏi có thể là: đúng sai, chọn một đáp án, chọn một hay nhiều đáp án khác nhau.

• Danh sách các câu hỏi và trả lời cho sẵn Định nghĩa lớp

Question gồm 2 thuộc tính: id, type (loại câu hỏi), question (câu hỏi), answer (đáp án)

45

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 29

46

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

HÌNH ẢNH LIÊN QUAN

CẤU HÌNH ACTIVITY TRONG ANDROIDMANIFEST - Bai 4  activity fragment
CẤU HÌNH ACTIVITY TRONG ANDROIDMANIFEST (Trang 5)
CẤU HÌNH ACTIVITY TRONG ANDROIDMANIFEST - Bai 4  activity fragment
CẤU HÌNH ACTIVITY TRONG ANDROIDMANIFEST (Trang 5)
CẤU HÌNH ACTIVITY TRONG ANDROIDMANIFEST - Bai 4  activity fragment
CẤU HÌNH ACTIVITY TRONG ANDROIDMANIFEST (Trang 6)
• Active (Created, Started, Resumed): activity đang chạy trên màn hình (foreground) • Paused: khi một activity mất focus nhưng vẫn đang chạy trên màn hình (background - Bai 4  activity fragment
ctive (Created, Started, Resumed): activity đang chạy trên màn hình (foreground) • Paused: khi một activity mất focus nhưng vẫn đang chạy trên màn hình (background (Trang 12)
• Xoay màn hình thiết bị. • Điện thoại có cuộc gọi đến. - Bai 4  activity fragment
oay màn hình thiết bị. • Điện thoại có cuộc gọi đến (Trang 18)
• Xoay màn hình máy ảo. - Bai 4  activity fragment
oay màn hình máy ảo (Trang 20)
w