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

Hướng dẫn lập trình Android bài 4

16 179 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 16
Dung lượng 99,36 KB

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

Nội dung

Bài 4: Intent và truyền nhận dữ liệu giữa các Activity... Khái niệm về Intent - Intent là một cấu trúc dữ liệu dạng tin nhắn làm cầu nối giữa các Activity, Service, Broadcast trong một

Trang 1

Bài 4: Intent và truyền nhận dữ liệu giữa các Activity

Trang 2

Nội dung bài học

1 Intent

2 Intent - filter

3 Truyền nhận dữ liệu giữa các Activity

Trang 3

1.1 Khái niệm về Intent

- Intent là một cấu trúc dữ liệu dạng tin nhắn làm cầu nối giữa các Activity, Service,

Broadcast trong một ứng dụng hoặc giữa các ứng dụng.

Trang 4

1.2 Các thuộc tính của một đối tượng Intent

Action

- Tên (String) của action mà Intent sẽ yêu cầu thực hiện.

- Có thể là action được Android định nghĩa sẵn, có thể là do người lập trình định nghĩa.

Category – Thông tin về nhóm của action

Type – định dạng kiểu dữ liệu (Chuẩn MIME)

Thường được tự động xác định.

Data

- Dữ liệu mà Activity được gọi sẽ xử lý.

- Định dạng là Uri (thông qua hàm Uri.parse(data)

Component- Chỉ định cụ thể lớp sẽ được thực thi

Activity

Extras – Chứa tất cả các cặp (key – value) do ứng

dụng thêm vào để truyền dữ liệu qua Intent

Trang 5

1.3 Phân loại Intent

 Intent tường minh:

- Intent tường minh là intent dùng thuộc tính phụ để chỉ đích danh tên lớp sẽ thực thi Activity

Intent intent = new Intent(MainActivity.this, SecondActivity.class);

startActivity(intent);

 Intent không tường mình:

- Intent không tường minh là intent không chỉ định một lớp cụ thể mà thay vào đó dùng các dữ liệu khác (action, data, type ) và để hệ thống tự quyết định xem lớp nào (app nào) sẽ thích hợp để đáp ứng intent đó

- Thông tin action và category của activity trong một app đáp ứng intent đó phải được khai báo trong

Manifest của app (AndroidManifest.xml) dưới dạng Intent-filter (tất nhiên nếu chúng ta muốn gọi một

built-in action thì ta không cần quan tâm đến vấn đề này)

Trang 6

Ví dụ:

Intent intent = new Intent (Intent.ACTION_VIEW,

Uri.parse("https://www.google.com.vn"));

startActivity(intent);

- Trong trường hợp này chúng ta muốn mở trang web Google chúng ta cần khai báo thêm quyền truy cập internet trong file Manifest như sau:

<uses-permission android:name="android.permission.INTERNET"/>

Trang 7

 Các action định nghĩa sẵn

Trang 8

 Ví dụ:

- Quay một số điện thoại

Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:098746422"));

startActivity(intent);

- Hiển thị danh bạ điện thoại

Intent intent = new Intent(Intent.ACTION_VIEW,

Uri.parse("content://contacts/people/"));

startActivity(intent);

- Chuỗi data trong hàm Uri.parse(data) là định dạng dữ liệu ContentProvider.

Trang 9

 Các Action tương ứng được định nghĩa sẵn

Trang 10

Intent - filter

2.1 Khái niệm

- IntentFilter là thành phần giúp cho hệ thống Android biết được ứng dụng của bạn có thể làm được những gì.

- Tất cả các Activity, Service và BroadCast Receiver đều sử dụng IntentFilter để thông báo cho hệ thống biết các dạng Intent không tường minh mà nó có thể xử lý Nói cách khác, IntentFilter là bộ lọc chỉ cho những Intent mà nó hiểu được phép đi qua nó Intent Filter mô tả khả năng của component định nghĩa nó.

Trang 11

Intent - filter

 Ví dụ:

1. Tạo giao diện layout demo_intentent_filter.xml có một TextView

2. Tạo 1 activity thứ 2 trong src là DemoIntenFilter

public class DemoIntenFilter extends Activity{

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.demo_intentent_filter);

}

}

3 Trong file Manifest khai báo như sau:

 

<activity

android:name=".DemoIntenFilter"

android:label="Demo intent filter" >

<intent-filter>

<action android:name="android.intent.action.CALL_PRIVILEGED" />

 

<category android:name="android.intent.category.DEFAULT" />

 

<data android:scheme="tel" />

</intent-filter>

</activity>

4 Ra màn hình home thực hiện cuộc gọi sẽ thấy hiển thị ứng dụng của chúng ta

Trang 12

Truyền nhận dữ liệu giữa các Activity

3.1 Truyền dữ liệu

 Cú pháp:

intent.putExtra(name, value);

intent: Là một đối tượng intent.

name: Là tên của dữ liệu.

value: Là giá trị mà các bạn muốn truyền sang Activity khác.

Trang 13

Truyền nhận dữ liệu giữa các Activity

 Ví dụ:

Intent intent = new Intent();

intent.putExtra("KEY_AGE", 19);

Trang 14

Truyền nhận dữ liệu giữa các Activity

3.2 Nhận dữ liệu

 Cú pháp:

getIntent().getExtras().get(key);

key: Chính là name khi truyền dữ liệu.

Trang 15

Truyền nhận dữ liệu giữa các Activity

 Ví dụ:

int age = getIntent().getExtras().get(("KEY_AGE");

 Chú ý:

- Có thể khởi động một activity với một yêu cầu nào đó và activity kia khi làm xong công việc

sẽ trả lại kết quả cho activity trước.

- Ví dụ activity A yêu cầu một activity làm giúp việc chụp ảnh, activity B đáp ứng được việc này, sau khi user chụp ảnh xong sẽ trả lại file ảnh cho activity A

Trang 16

Q&A

Ngày đăng: 12/09/2017, 01:00

w