You are on page 1of 12

BÀI ÔN TẬP SỐ 02

MÔN: LẬP TRÌNH THIẾT BỊ DI ĐỘNG

1. (0.200 Point)
Tập tin dùng để tải lên Android Market là:
A. .java
B. .dex
*C. .apk
D. .jar
2. (0.200 Point)
Thư mục chứa các file XML thiết kế giao diện trong dự án
A. /anim
B. /color
*C. /layout
D. /menu
3. (0.200 Point)
Thư mục chứa các tập tin hình ảnh hoặc chứa các tài nguyên XML có
thể được phiên dịch thành các tài nguyên hình ảnh
A. /anim
B. /color
*C. /drawable
D. /layout
4. (0.200 Point)
Thuộc tính nào sau đây dùng để thay đổi độ cao của một đối tượng
A. Android:layout_width
*B. Android:layout_height
C. Android:layout_gravity
D. Android:layout_margin
5. (0.200 Point)
Giả sử có một CheckBox có tên chk, để kiểm tra chk có được check hay
không ta kiểm tra phương thức
*A. chk.isChecked()
B. chk. Checked()
C. chk.setChecked(True)
D. chk.setChecked(False)
6. (0.200 Point)
Để lấy dữ liệu từ EditText có tên là edta chuyển sang kiểu Integer và gán
vào biến có tên là soa, ta thực hiện lệnh Java
*A. int soa = Integer.parseInt(edta.getText().toString());
B. int soa = Double.parseDouble(edta.getText().toString());
C. int soa = edta.getText().toString();
D. int soa = parseInt(edta.getText().toString());
7. (0.200 Point)
Giả sử ta có RadioGroup gồm nhiều RadioButton, để kiểm tra trạng thái
chọn của mỗi RadioButton, ta thường sử dụng cấu trúc nào?
A. For( ; ; )
*B. Switch .... Case... hoặc if ...else....
C. loop .... until....
D. While ()
8. (0.200 Point)
Layout đơn giản nhất, có thể chứa nhiều View và các đối tượng View này
có thể được sắp chồng lên nhau
*A. FrameLayout
B. LinearLayout
C. TableLayout
D. RelativeLayout
9. (0.200 Point)
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
*A. Explicit Intent
B. Implicit Intent
C. Intent Filter
D. Tất cả đều sai
10. (0.200 Point)
Các loại thành phần ứng dụng của Project Android gồm:
A. Activities, Services
B. Services, Content Provider
C. Content Provider, Broadcast Receivers
*D. Tất cả đều đúng
11. (0.200 Point)
Action nào sau đây có nhiệm vụ mở 1 Activity cho phép gửi thông
điệp(Message) tới địa chỉ lấy từ data URI
A. ACTION_DIAL
B. ACTION_CALL
C. ACTION_SEND
*D. ACTION_SENDTO
12. (0.200 Point)
Cấu trúc hệ điều hành Android gồm các tầng:
A. Tầng lõi ARM Linux, tầng thư viện, tầng máy ảo Android.
*B. Tầng lõi ARM Linux, tầng thư viện, tầng máy ảo Andorid, tầng khung
ứng dụng Android, tầng ứng dụng lõi Android.
C. Tầng lõi ARM Linux, tầng thư viện, tầng khung ứng dụng Android
D. Tầng lõi ARM Linux, tầng thư viện, tầng ứng dụng lõi Android.
13. (0.200 Point)
Để gọi từ Activity này sang một Activity khác, ta sử dụng
A. Intent Filter
*B. Intent
C. Bundle
D. Cusor
14. (0.200 Point)
Khi tạo ra một thành phần ứng dụng mới (Activity, Service,
BroadcastReceiver), ta phải khai báo nó ở đâu?
A. Trong file Layout tương ứng
B. Trong file Java tương ứng
C. Trong hàm OnCreate()
*D. Trong file AndroidManifest.xml của dự án
15. (0.200 Point)
Để dừng một service thông qua Intent, ta sử dụng phương thức nào ?
A. stopIntent(myIntent)
*B. stopService(myIntent)
C. stopActivity(myIntent)
D. Tất cả đều sai
16. (0.300 Point)
Application trong Android là gì?
Application là một thành phần chính của hệ thống, đại diện cho một ứng
dụng cụ thể và quản lý các tài nguyên và hoạt động của ứng dụng.
17. (0.300 Point)
Garbage collector là gì?
Garbage Collector trong Android là một thành phần quản lý bộ nhớ,
chịu trách nhiệm thu gom và giải phóng bộ nhớ không còn sử dụng để tối
ưu hiệu suất hệ thống và ngăn chặn rò rỉ bộ nhớ.
18. (0.300 Point)
Activity Stack hoạt động theo cơ chế gì?
Garbage collector là một chương trình chạy nền, nó theo dõi toàn bộ các
Object trong bộ nhớ (Heap) và tìm ra những Object nào không được dùng
nữa. Toàn bộ những Object không có reference sẽ bị xóa.
19. (0.300 Point)
Empty process có bao nhiêu thành phần
Empty process trong Android có một thành phần duy nhất, đó là một Activity
mặc định.
20. (0.300 Point)
Các file giao diện của ứng dụng Android được lưu trữ ở đâu?
Các file giao diện của ứng dụng Android thường được lưu trữ trong thư mục
"res/layout/" trong dự án Android, trong các file XML có định dạng ".xml".
21. (0.300 Point)
Kể tên ít nhất 3 loại Layout trong Android
LinearLayout, RelativeLayout, FrameLayout, ConstraintLayout, GridLayout.
22. (0.300 Point)
TextView được hổ trợ các phương thức để thực hiện các siêu liên kết
nào?
TextView hỗ trợ các phương thức để thực hiện các siêu liên kết HTML bằng
cách sử dụng phương thức setText() với HTML định dạng.
23. (0.300 Point)
Thư mục lưu trữ hình ảnh mặc định của ứng dụng Android là gì?
Thư mục lưu trữ hình ảnh mặc định của ứng dụng Android là "res/drawable".
24. (0.300 Point)
Các trạng thái của 1 Activity là gì?
Running (Đang chạy), Paused (Tạm dừng), Stopped (Dừng lại), Destroyed
(Hủy bỏ).
25. (0.300 Point)
Kể tên 5 Widget phổ biến trong Android?
Button, TextView, EditText, ImageView, ListView.
=========================Trả lời ngắn 02
===============================
16. (0.300 Point) Viết hàm SQLite truy vấn tất cả sinh viên trong Table
tbsinhvien với điều kiện DIEMTB >=5, kết quả trả về nhóm theo trường
MALOP.
SELECT MALOP, COUNT(*)
FROM tbsinhvien
WHERE DIEMTB >= 5
GROUP BY MALOP;

17. (0.300 Point) Đường dẫn lưu trữ cơ sở Sqlite dữ liệu trong thiết bị là
gì ?
/data/data/<tên_gói_ứng_dụng>/databases/
18. (0.300 Point) Lệnh setContentView(R.layout.main) có nghĩa là gì?
Sử dụng để đặt nội dung hiển thị của Activity thành một giao diện người
dùng được định nghĩa trong tệp nguồn (layout) có tên là "main.xml"
19. (0.300 Point) Giá trị "match_parent" của thuộc tính
android:layout_width and android:layout_height có nghĩa là gì ?
Có nghĩa là thành phần đó sẽ mở rộng để chiếm toàn bộ không gian có
sẵn trong phần cha của nó. Nó sẽ kích thước dọc theo chiều rộng
(layout_width) hoặc chiều cao (layout_height) của phần cha
20. (0.300 Point) Giả sử có một CheckBox có tên chk, để kiểm tra chk có
được lựa chọn hay không ta kiểm tra phương thức nào của nó ?
Sử dụng phương thức isChecked()
21. (0.300 Point) Viết lệnh Java dùng để khai báo và gán (tham chiếu) id
cho cho một đối tượng Button có tên là btnclick và có id là btn1
import android.widget.Button;
// Khai báo và gán tham chiếu cho Button
Button btnclick = findViewById(R.id.btn1);
22. (0.300 Point) Hai công việc cần thực hiện khi muốn cập nhật dữ liệu
cho ListView là gì
- Cập nhật dữ liệu của danh sách mà ListView hiển thị
- Sau khi cập nhật dữ liệu, bạn cần cập nhật giao diện của ListView để
hiển thị dữ liệu mới.
23. (0.300 Point) Những trạng thái hoạt động nào có thể trải qua trong
một vòng đời của một Activity
onCreate(), onStart(), onResume(), onPause(), onStop(),…
24. (0.300 Point) Hãy mô tả đặc điểm của thành phần ứng dụng Services
Services trong Android là một thành phần quan trọng, có thể thực hiện
các hoạt động lâu dài trong background và không cung cấp một giao
diện người.
25. (0.300 Point) Thư mục drawable trong project android có tác dụng gì
?
Có chức năng chứa các tài nguyên hình ảnh và đồ họa.
============================Trả lời ngắn
03==============================
16. (0.300 Point)
Liệt kê ít nhất 2 trong số các thành phần quan trọng của ứng dụng
Android?
Activities, Services, Intents, Manifest.
17. (0.300 Point)
Sau khi khai báo Bundle bundle = getIntent().getExtras(), hãy viết lệnh
nhận một số Integer có key “key_MaSo” trong bundle.
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
Integer maSo = bundle.getInt("key_MaSo");
}
18. (0.300 Point)
Trình bày lệnh gọi SecondActivity từ MainActivity?
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
19. (0.300 Point)
Có bao nhiêu loại menu cơ bản trong ứng dụng Android? Hãy kể tên loại
menu đó?
- ba loại menu cơ bản:
Options Menu (Menu tùy chọn), Context Menu (Menu ngữ cảnh), Popup
Menu (Menu pop-up).
20. (0.300 Point)
Hãy viết lệnh để thiết lập ArrayAdapter adapter cho ListView có tên là
listView?
// Giả sử bạn có một mảng String
String[] data = {"Item 1", "Item 2", "Item 3", "Item 4"};
// Tạo ArrayAdapter
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, data);
// Tìm ListView
ListView listView = (ListView) findViewById(R.id.listView);
// Thiết lập ArrayAdapter cho ListView
listView.setAdapter(adapter);
21. (0.300 Point)
Toast.LENGTH_SHORT sẽ cho phép thông điệp Toast hiển thị trong
bao nhiêu giây?
Hiển thị thông điệp Toast trong khoảng 2 giây.
22. (0.300 Point)
Mục đích câu lệnh Integer number = Integer.parseInt("3"); là để làm gì?
Sử dụng để chuyển đổi một chuỗi chứa số nguyên thành một đối tượng
kiểu Integer.
23. (0.300 Point)
Theo bạn nhược điểm của hệ điều hành Android là gì?
Dễ bị nhiễm phần mềm độc hại và virus, Kho ứng dụng quá nhiều dẫn
đến khó kiểm soát chất lượng, Sự phân mảnh lớn, Khả năng cập nhật hệ
điều hành chậm chạp.
24. (0.300 Point)
Trong Android, Intent được chia thành bao nhiêu loại? Nó là những loại
gì?
- Gồm 2 loại chính :
Explicit Intent
Implicit Intent
PHẦN 3: TỰ LUẬN
26. (4.000 Points)
Tạo ứng dụng Android có 2 activitiy như sau:
- MainActivity có 2 EditText là edtName, edtPhone, edtAddress và 1
Button btnNext.
- SecondActivity có 1 TextView textviewName và 1 Button btnCall.
Hãy viết lệnh bằng Java để thực hiện các yêu cầu sau:
a. Khi nhấn vào btnNext ở MainActivity, ứng dụng sẽ gọi
SecondActivity và truyền các giá trị trong edtName, edtPhone,
edtAddress đến activity này. (2 điểm)
// MainActivity.java
public class MainActivity extends AppCompatActivity {
EditText edtName, edtPhone, edtAddress;
Button btnNext;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edtName = findViewById(R.id.edtName);
edtPhone = findViewById(R.id.edtPhone);
edtAddress = findViewById(R.id.edtAddress);
btnNext = findViewById(R.id.btnNext);

btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,
SecondActivity.class);
intent.putExtra("name", edtName.getText().toString());
intent.putExtra("phone", edtPhone.getText().toString());
intent.putExtra("address", edtAddress.getText().toString());
startActivity(intent);
}
});
}
}

// SecondActivity.java
public class SecondActivity extends AppCompatActivity {
TextView textviewName;
Button btnCall;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);

textviewName = findViewById(R.id.textviewName);
btnCall = findViewById(R.id.btnCall);

Intent intent = getIntent();


String name = intent.getStringExtra("name");
String phone = intent.getStringExtra("phone");
String address = intent.getStringExtra("address");
textviewName.setText(name + ", " + phone + ", " + address);
}
}

b. Hiển thị giá trị Họ Tên, Số điện thoại, Địa chỉ lên TextView
textviewName trong SecondActivity. VD: "Nguyễn Văn A,
0905123321, 03 Quang Trung" (1 điểm).
// SecondActivity.java
public class SecondActivity extends AppCompatActivity {
TextView textviewName;
Button btnCall;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);

textviewName = findViewById(R.id.textviewName);
btnCall = findViewById(R.id.btnCall);

Intent intent = getIntent();


String name = intent.getStringExtra("name");
String phone = intent.getStringExtra("phone");
String address = intent.getStringExtra("address");

textviewName.setText(name + ", " + phone + ", " + address);


}
}
c. Khi nhấn vào Button btnCall trên SecondActivity, ứng dụng sẽ
thực hiện gọi đến số điện thoại mà SecondActivity nhận được. (1
điểm)
// SecondActivity.java
public class SecondActivity extends AppCompatActivity {
TextView textviewName;
Button btnCall;
String phone;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);

textviewName = findViewById(R.id.textviewName);
btnCall = findViewById(R.id.btnCall);

Intent intent = getIntent();


String name = intent.getStringExtra("name");
phone = intent.getStringExtra("phone");
String address = intent.getStringExtra("address");

textviewName.setText(name + ", " + phone + ", " + address);

btnCall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent callIntent = new Intent(Intent.ACTION_DIAL);
callIntent.setData(Uri.parse("tel:" + phone));
startActivity(callIntent);
}
});
}
}

Tên File lưu và gởi trên DropBox:

XXXX_NGUYENVANA_CR424U_Bai02.docx

XXXX: Bốn chữ soos cuối của mã sinh viên


NGUYENVANA: Họ tên đầy đủ của sinh viê
CR424U: Lớp
Bai02: Bài ôn tập số 02

You might also like