Tải bản đầy đủ (.ppt) (34 trang)

Cr 424 lap trinh ung dung cho cac thiet bi di dong 2020s lecture slides 8

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.35 MB, 34 trang )

Chủ đề 8:

INTENT – INTENT FILTER
Thời lượng: (3 giờ) 180 phút
Giảng viên: Nguyễn Minh Nhật


THƠNG TIN GIẢNG VIÊN

Họ tên: ThS. Võ Minh ThơngSố điện thoại: 0932588649
Email :
Khoa: Điện – Điện tử, P503 – 03 Quang
Trung


NỘI DUNG
1. Intent
2. Phân loại Intent
3. Intent và Activity
4. Các Demo ví dụ
5. Bài tập trắc nghiệm
6. Bài tập thực hành


Link Youtube tham khảo

 Cách thức làm việc Intent Explicit
 Intent Explicit Truyền và nhận dữ liệu


1. Intent


- Ba trong số những thành phần ứng dụng cốt lõi trong một
dự án Android là: Activity, Service và Broadcast Receiver,
được kích hoạt thơng qua các thơng điệp bất đồng bộ,
được gọi là Intent. Thông điệp này dùng để kết nối các
thành phần trong một dự án với nhau, hoặc giữa các dự
án với nhau.
- Intent rất quan trọng nó là linh hồn của Android, là hạt
nhân để Android tồn tại.


1. Intent
- Intent có 4 cơng dụng chính:
1) Dùng Intent để mở một Activity khác nhưng khơng kiểm sốt kết
quả trả về.
2) Dùng Intent để mở một Activity khác, truyền dữ liệu đi hoặc kiểm
soát kết quả trả về.
3) Liên kết Application Components: Activity, Service, Broadcast
Receiver trong 1 ứng dụng.
4) Kết nối các thành phần trong các ứng dụng khác nhau và giữa
HĐH với ứng dụng


2. Phân loại Intent
a. Explicit Intent:
Hay còn gọi là Intent công khai. Với loại Intent này tên của
Application Componnet đích phải được chỉ định và nêu rõ tên,
Ví dụ:
Intent myIntent=new Intent(MainActivity.this, ChildActivity.class);

b. Implicit Intent: hay còn gọi là Intent ẩn, Với loại Intent này

tên của Application Componnet đích không được chỉ định,
chúng ta cần thiết lập thông tin về hành động (Action), Dữ liệu p thông tin về hành đ ộng (Action), Dữ liệu ng (Action), Dữ li ệu u
(Data) hay phân loại (category)
Ví dụ:
Intent myIntent=new Intent(Intent.ACTION_CALL, Uri.parse(“tel:55
5-2368”));


2. Phân loại Intent


3. Intent và Activity
 Explicit Intent
- Dùng Intent để mở Activity khác


Explicit Intent


Explicit Intent
btnOpen=(Button) findViewById(R.id.btnOpenChildActivity);
btnOpen.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
doOpenChildActivity();
} }); }
public void doOpenChildActivity()
{
Intent myIntent=new Intent(this, ChildActivity.class);
startActivity(myIntent);
}

Intent myIntent=new Intent(this, ChildActivity.class);
Đối số 1 là context hiện tại, nếu bạn muốn chắc ăn ở đâu nó cũng
hiểu thì bạn gán tên class Activity như thế này:
Intent myIntent=new Intent(MainActivity.this, ChildActivity.class);


Explicit Intent
Button btnBack= (Button)
findViewById(R.id.btnBacktoMainActivity);
btnBack.setOnClickListener(new
View.OnClickListener() {
public void onClick(View v) {
finish();
}
});


Explicit Intent

• Lưu ý là phải khai báo ChildActivity trong
AndroidMainifest


Explicit Intent
- Mở một Activity khác đồng thời truyền
dữ liệu qua

Dùng đối tượng Bundle để đóng gói dữ liệu để truyền tải
qua các Activity khác



Explicit Intent


Explicit Intent


Explicit Intent
Intent myIntent=new Intent(MainActivity.this, ResultActivity.class);
//Khai báo Bundle
Bundle mybundle=new Bundle();
int a=Integer.parseInt(txta.getText().toString());
int b=Integer.parseInt(txtb.getText().toString());
//đưa dữ liệu riêng lẻ vào Bundle
mybundle.putInt("soa", a);
mybundle.putInt("sob", b);
//Đưa Bundle vào Intent
myIntent.putExtra("MyPackage", mybundle);
//Mở Activity ResultActivity
startActivity(myIntent);


Explicit Intent

//lấy intent gọi Activity này
Intent callerIntent=getIntent();
//có intent rồi thì lấy Bundle dựa vào MyPackage
Bundle packageFromCaller=
callerIntent.getBundleExtra("MyPackage");
//Có Bundle rồi thì lấy các thông số dựa vào key “soa”, “sob”

int a=packageFromCaller.getInt("soa");
int b=packageFromCaller.getInt("sob");


Implicit Intent
• Implicit Intent hay còn gọi là Intent ẩn, Với loại Intent này
tên của Application Componnet đích khơng được chỉ định,
chúng ta cần thiết lập thông tin về hành động (Action), Dữ
liệu (Data) hay phân loại (category)


Implicit Intent
• Ví dụ 1:
Intent myIntent=new Intent(Intent.ACTION_CALL, Uri.parse(“tel:5
55-2368”));
• Trong ví dụ trên, Intent chứa Action là ACTION_CALL và
Data tương ứng là số điện thoại 555-2368, hệ thống Android
sẽ tìm một ứng dụng có sẵn trong thư viện SDK để thực hiện
u cầu.
• Hoặc:c:
Intent myintent =new Intent(Intent.ACTION_CALL);
myintent.setData(Uri.parse(“tel:555-2368”));
• Ví dụ 2:
Intent myIntent=new Intent(Intent.ACTION_VIEW, Uri.parse
(“www.google.com”)



×