148
[email protected] 1 Học Lập trình ứng dụng Android| Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên Bài học này hướng dẫn các bạn tải và cài đặt các công cụ cần thiết cho việc lập trình di động trên môi trường Android. Hai thành phần bản nhất mà chúng ta cần phải có chính là bộ Android SDK (Software Development Kit) chứa các phiên bản Android, các hàm API cần thiết cũng như các công cụ hỗ trợ lập trình khác và JDK (Java Development Kit) dùng để tạo ra môi trường thực thi máy ảo cho hệ điều hành mà chúng ta đang sử dụng. Các bạn thể tải bộ Android SDK tại địa chỉ http://developer.android.com/sdk/index.html. Khi tải về bộ Android SDK sẽ định dạng *.exe trên môi trường Windows và ZIP đối với Linux và Mac OS. Việc cài đặt chúng ta có thể chỉ định nơi lưu trữ trên cứng thiết bị, lưu ý không nên chọn phân vùng đã cài hệ điều hành bởi bộ SDK sẽ tăng dung lượng rất nhiều khi chúng ta tải về các phiên bản khác. Đối với JDK các bạn truy cập vào trang http://www.oracle.com/index.html để tải và cài đặt phiên bản mới nhất để tăng tính ổn định hỗ trợ tốt nhất. tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo văn bản thì một công cụ lập trình IDE (Integrated development environment) sẽ rất hữu ích và tiện lợi. Eclipse được xem là một công cụ hỗ trợ rất tốt trong việc lập trình ứng dụng Android. Truy cập vào tranghttp://eclipse.org/downloads/ để tiến hành tải chạy trực tiếp Eclipse. Trong tài liệu này Eclipseđược sử dụng là phiên bản 4.2.1 (Juno Eclipse Classic). Để thể tạo cầu nối cho Eclipse với bộ Android SDK làm việc với nhau, ta cần phải sử dụng thêm plugin ADT (Android Development Tool) cho Eclipse. Nó cho phép chúng ta tạo Project Android, quản lí các máy ảo, đóng gói ứng dụng nhiều thứ khác nữa.Việc cài đặt ADT đơn giản chỉ cần theo các bước sau: 1. Chọn Help trên thanh tác vụ của Eclipse và chọn Install New Software bấm vào nút Add. 2. Trong hộp thoại mới xuất hiện, điền địa chỉ truy cập để tải về ADT trong ô Location:https://dl- ssl.google.com/android/eclipse/. 3. Nhấn OK để Eclipse bắt đầu tìm kiếm, sau khi hoàn thành sẽ hiện ra các plug-in. Đánh dấu vào nút gốc Developer Tools nhấn Next. Eclipse sẽ tự động tải về, ta tiếp tục nhấn Nextđể qua bước cài đặt. 4. Đọc chấp nhận các điều khoản bản quyền, nhấn Next Finsh. 5. Sau khi cài xong cần thực hiện khởi động lại Eclipse và tham chiếu đến đến bộ Android SDKđã cài đặt. Chọn mục Preferences trong phần Windows trên thanh tác vụ của Eclipse. 6. Chọn mục Android trong cây thư mục bảng phía bên trái. 7. Nhấn Browse, trỏ đến thư mục đã cài đặt bộ Android SDK nhấn Apply. Danh sách các phiên bản SDK sẽ được liệt như hình. Nhấn OK để hoàn thành cài đặt. Vậy là các bạn đã thiết lập xong môi trường lập trình. Chúng ta sẽ tìm hiểu tiếp cách tạo ứng dụng chạy thực thi trên máy ảo.

Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

1 Học Lập trình ứng dụng Android|

Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng

đầu tiên

Bài học này hướng dẫn các bạn tải và cài đặt các công cụ cần thiết cho việc lập trình di động trên

môi trường Android. Hai thành phần cơ bản nhất mà chúng ta cần phải có chính là bộ Android SDK

(Software Development Kit) chứa các phiên bản Android, các hàm API cần thiết cũng như các

công cụ hỗ trợ lập trình khác và JDK (Java Development Kit) dùng để tạo ra môi trường thực thi

máy ảo cho hệ điều hành mà chúng ta đang sử dụng.

Các bạn có thể tải bộ Android SDK tại địa chỉ http://developer.android.com/sdk/index.html. Khi tải

về bộ Android SDK sẽ có định dạng *.exe trên môi trường Windows và ZIP đối với Linux và Mac

OS. Việc cài đặt chúng ta có thể chỉ định nơi lưu trữ trên ổ cứng thiết bị, lưu ý không nên chọn phân

vùng đã cài hệ điều hành bởi vì bộ SDK sẽ tăng dung lượng rất nhiều khi chúng ta tải về các phiên

bản khác.

Đối với JDK các bạn truy cập vào trang http://www.oracle.com/index.html để tải và cài đặt phiên bản

mới nhất để tăng tính ổn định và hỗ trợ tốt nhất.

Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo văn bản thì một công cụ

lập trình IDE (Integrated development environment) sẽ rất hữu ích và tiện lợi. Eclipse được xem là

một công cụ hỗ trợ rất tốt trong việc lập trình ứng dụng Android. Truy cập vào

tranghttp://eclipse.org/downloads/ để tiến hành tải và chạy trực tiếp Eclipse. Trong tài liệu

này Eclipseđược sử dụng là phiên bản 4.2.1 (Juno – Eclipse Classic).

Để có thể tạo cầu nối cho Eclipse với bộ Android SDK làm việc với nhau, ta cần phải sử dụng

thêm plugin ADT (Android Development Tool) cho Eclipse. Nó cho phép chúng ta tạo Project

Android, quản lí các máy ảo, đóng gói ứng dụng và nhiều thứ khác nữa.Việc cài đặt ADT đơn giản

chỉ cần theo các bước sau:

1. Chọn Help trên thanh tác vụ của Eclipse và chọn Install New Software và bấm vào nút Add.

2. Trong hộp thoại mới xuất hiện, điền địa chỉ truy cập để tải về ADT trong ô Location:https://dl-

ssl.google.com/android/eclipse/.

3. Nhấn OK để Eclipse bắt đầu tìm kiếm, sau khi hoàn thành sẽ hiện ra các plug-in. Đánh dấu

vào nút gốc Developer Tools và nhấn Next. Eclipse sẽ tự động tải về, ta tiếp tục

nhấn Nextđể qua bước cài đặt.

4. Đọc và chấp nhận các điều khoản bản quyền, nhấn Next và Finsh.

5. Sau khi cài xong cần thực hiện khởi động lại Eclipse và tham chiếu đến đến bộ Android

SDKđã cài đặt. Chọn mục Preferences trong phần Windows trên thanh tác vụ của Eclipse.

6. Chọn mục Android trong cây thư mục ở bảng phía bên trái.

7. Nhấn Browse, trỏ đến thư mục đã cài đặt bộ Android SDK và nhấn Apply. Danh sách các

phiên bản SDK sẽ được liệt kê như hình. Nhấn OK để hoàn thành cài đặt.

Vậy là các bạn đã thiết lập xong môi trường lập trình. Chúng ta sẽ tìm hiểu tiếp cách tạo ứng dụng

và chạy thực thi trên máy ảo.

Page 2: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

2 Học Lập trình ứng dụng Android|

Sau khi cài Plugin ADT, ta sẽ thấy xuất hiện 2 biểu tượng trên thanh công cụ của Eclipse.

Biểu tượng đầu tiên là Android SDK Manager, quản lí các phiên bản Android. Ứng với từng phiên

bản là các tài liệu hướng dẫn, các ví dụ minh họa và các hàm API...Nhấn vào biểu tượng để khởi

động Android SDK Manager và ADT sẽ tượng động cập nhật các gói mới, bạn có thể lựa chọn

phiên bản Android hoặc các công cụ cần thiết và ấn Install Pakages .

Biểu tượng thứ 2 là Android Virtual Device Manager (AVD), cho phép lập trình viên tạo và quản lí

các thiết bị ảo. Để tạo thiết bị ảo ta khởi động AVD, ấn New, một hộp thoại mới hiện ra và điền vào

các thông tin sau:

1. Name: tên thiết ảo cần tạo (thường đặt tên theo phiên bản).

2. Target: phiên bản Android muốn thực thi trên thiết bị ảo này.

3. CPU/ABI: giả lập chip xử lý cho thiết bị ảo, mặc định là ARM (armeabi-v7a) hoặc Intel Atom

đối với từng phiên bản khác nhau.

4. SD Card: cấp phát bộ lưu trữ ngoài cho thiết bị hoặc trỏ đến tập tin ảnh có sẵn.

5. Snapshot: bật tắt chế độ chụp màn hình.

6. Skin: định nghĩa độ phân giải cũng như kích thước màn hình cho thiết bị ảo.

7. Hardware: bổ sung các thuộc tính phụ về phần cứng cho thiết bị. Ở đây ta cần bổ sung thêm

thuộc tính Keyboard Support để có thể nhập liệu vào thiết bị ảo từ bàn phím máy tính cá

nhân.

Page 3: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

3 Học Lập trình ứng dụng Android|

Nhấn Create AVD để kết thúc quá trình tạo thiết bị ảo. Danh sách các thiết bị ảo được liệt kê trên

bảng bên tay phải, ta có nhấn chọn để khởi động (Start) hoặc các tuỳ chỉnh (Edit), xoá (Delete) và

xem lại thông số thiết bị (Details).

Việc tiếp theo ta sẽ thực hiện tạo một Project và chạy thử trên thiết bị ảo mà ta đã tạo. Để tạo

mớiProject ta sẽ dùng công cụ Android New Project Wizard theo các bước sau:

1. Từ thanh tác vụ của Eclipse chọn File à New à Android Application Project.

2. Trong hộp thoại mới xuất hiện điền các thông tin sau:

Page 4: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

4 Học Lập trình ứng dụng Android|

a. Project Name: là tên của đề án.

b. Application Name: là tên ứng dụng mà chúng ta sẽ tạo.

c. Package Name: là tên định danh của gói phần mềm được hệ thống lưu trữ trên thiết

bị khi cài đặt ứng dụng. Thường sẽ được được theo tên của một tổ chức hoặc cá nhân

tạo ra ứng dụng. Bắt buộc phải có 2 trường dữ liệu trở lên và ngăn nhau bởi dấu chấm.

Ví dụ “htsi.test.demoapplication”.

d. Build SDK: chính là phiên bản mà lập trình viên sẽ phát triển ứng dụng, mặc nhiên

các hàm hỗ trợ sẽ được tích hợp nhằm tối ưu hoá ứng dụng trên phiên bản này.

e. Minimum Required SDK: phiên bản thấp nhất được chỉ định để chạy ứng dụng. Một

số các hàm API sẽ được gọi bổ sung trong phần thư viện hỗ trợ.

f. Create custom launcher icon: đánh dấu vào phần này để thiết lập biểu tượng cho

ứng dụng.

g. Mark this project as a library: đánh dấu cho biết chúng ta đang cần tạo ra một

Project mới dạng thư viện để sử dụng.

h. Location: nơi dùng để lưu Project. Có thể để mặc định hoặc tạo ra nơi lưu trữ mới

bằng cách đánh dấu hoặc huỷ đánh dấu phần Create Project in Workspace.

3. Nhấn Next qua hộp thoại tiếp theo sẽ là nơi để chúng ta tạo ra biểu tượng cho ứng dụng nếu

như hộp thoại trước chúng ta có đánh dấu vào phần Create custom launcher icon.

4. Tiếp tục nhấn Next ta sẽ qua hộp thoại tạo Activity (có thể tạm hiểu là màn hình ứng dụng

đầu tiên). Có hai lựa chọn là BlankActivity cho màn hình tất cả các phiên bản Android

vàMasterDetailFlow cho các phiên bản từ 3.0 (API 11) trở lên.

5. Trong hộp thoại cuối cùng, ta sẽ thiết lập thêm một số các thông số cho Activity như tên

(Activity Name), giao diện sẽ dùng (Layout Name), các điều hướng trên màn hình

(Navigation - chỉ hỗ trợ từ phiên bản Android 4.0). Nhấn Finish để hoàn thành việc tạo đề án.

Để chạy thử Project này ta thực hiện chuột phải lên tên Project, chọn Run As à Android Application.

Và đây sẽ màn hình ứng dụng đầu tiên của bạn.

Page 5: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

5 Học Lập trình ứng dụng Android|

Bài 2: Xây dựng ứng dụng đa màn hình và truyền dữ liệu

Đây là Bài 2 của loạt bài hướng dẫn tự học Lập trình Android. Trong bài này chúng ta tìm hiểu cách

xây dựng giao diện cho Activity và các chuyển màn hình đơn giản thông qua việc tạo ra màn hình

đăng nhập cho ứng dụng. Tiến hành tạo Project, vào thư mục res/layout mở tập tin

activity_main.xml sẽ có giao diện như hình.

Page 6: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

6 Học Lập trình ứng dụng Android|

Thực hiện kéo các điều khiển vào trong Layout như hình, chuyển qua chế độ XML (ô màu xanh)

sửa thuộc tính của các điều khiển như sau:

Điều Khiển android:id android:text

Button btnDangNhap @string/btnDN

TextView1 txtTaiKhoan @string/txtTK

TextView2 txtMatKhau @string/txtMK

EditText1 editTaiKhoan

EditText2 editMatKhau

Vào thư mục res/values mở tập tin strings.xml và bổ sung như sau:

Trong hàm onCreate của tập tin MainActivity.java xử lý sự kiện nhấn cho Button.

Page 7: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

7 Học Lập trình ứng dụng Android|

Tạo lớp SecondActivity trong thư mục src với nội dung như sau:

Mở tập tin AndroidManifest.xml, trong cặp thẻ application bổ sung thêm Activity cho ứng dụng.

Tiến hành chạy Project, bấm vào nút Go ứng dụng sẽ chuyển qua màn hình SecondActivity như

hình, thực hiện bấm nút Back trên thiết bị ảo để trở về MainActivity

Page 8: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

8 Học Lập trình ứng dụng Android|

Bài 3: Xây dựng ứng dụng ghi chú bằng ListView

Bài 3 trong chương trình hướng dẫn học Lập trình trên Android sẽ hướng dẫn bạn nội dung: Xây

dựng ứng dụng ghi chú bằng ListView. Tạo Project, thiết kế giao diện gồm một EditText và một

ListView, mở tập tin activity_main.xml trong res/layout và chỉnh sửa giống như hình.

Tạo thêm một tập tin giao diện cho mỗi dòng trong ListView. Nhấp chuột phải vào thư

mục res/layout/ chọn New à Android XML File. Chọn điều khiển TextView

Page 9: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

9 Học Lập trình ứng dụng Android|

Mở tập tin MainActivity.java, tạo các biến thành viên trên hàm onCreate

Trong hàm onCreate khởi tạo giá trị cho các biến thành viên này

Page 10: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

10 Học Lập trình ứng dụng Android|

Xử lý sự kiện onKeyListener cho EditText

Chạy ứng dụng thử nhập liệu vào EditText và nhấn Enter

Page 11: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

11 Học Lập trình ứng dụng Android|

Tải mã nguồn ứng dụng tại https://www.dropbox.com/s/w5x4f84bejict7x/DemoListView.rar

Page 12: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

12 Học Lập trình ứng dụng Android|

Bài 4: Xem ảnh với GridView

[Học Lập trình Android] Phần hướng dẫn Xem ảnh với GridView .

Mở tập tin activity_main.xml trong res/layout/ và chỉnh sửa giống như sau:

Thực hiện copy các hình ảnh vào thưmục res/drawable-hdpi (Lưu ý các file ảnh không nên viết hoa

hoặc có chứa kí tự số).

Tạo lớp ImageAdapter kế thừa từ lớp BaseAdapter và khai báo các biến thành viên. Lớp này sẽ có

nhiệm vụ cấu trúc dữ liệu cho mỗi ô trong Gridview.

Page 13: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

13 Học Lập trình ứng dụng Android|

Thực thi các phương thức có bắt buộc của lớp kế thừa. Phương thức getCount trả về số lượng item

GridView cần thể hiện chính là độ dài mảng hình và phương thức getPosition trả về vị trí của mỗi

item. Phương thức getView tạo đối tượng ImageView thể hiện hình ảnh cho mỗi item.

Page 14: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

14 Học Lập trình ứng dụng Android|

Khai báo các báo thành viên trong lớp MainActivity và thực hiện tham chiếu trong hàm onCreate

Chạy ứng dụng và xem ứng dụng thể hiện các hình ảnh.

Tải mã nguồn ứng dụng tại:

https://www.dropbox.com/s/w5x4f84bejict7x/DemoListView.rar

Page 15: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

15 Học Lập trình ứng dụng Android|

Bài 5: Nâng cấp ứng dụng xem ảnh với ViewFliper

Kế thừa bài 4 trong chuyên mục [Học Lập trình Android], trong lớp MainActivity bổ sung biến sau:

Trong phương thức onCreate của MainActivity bổ sung đoạn mã nhận sự kiện khi người dùng bấm

chọn lên một ô trên GridView. Khi đó ta sẽ gửi một Intent đến Activity thứ 2 :

Từ thư mục res/layout của Project, tạo tập tin show_image_layout.xml với nội dung sau:

Page 16: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

16 Học Lập trình ứng dụng Android|

Tạo thêm lớp ShowImage kế thừa từ lớp Activity và thực thi Inteface OnTouchListener. Thực hiện

nhận Intent được gửi từ MainActivty bằng phương thức getIntent. Truyền biến đã nhận trong Intent

để thiết lập tấm hình hiện tại cho ViewFlipper.

Thực hiện xử lý người dùng thực chạm và kéo trên màn hình trong hàm onTouch. Sử dụng biến

event và phương thức getAction để nhận biết người dùng khi nào nhấn xuống hoặc thả ra.

Page 17: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

17 Học Lập trình ứng dụng Android|

Cuối cùng khai báo activity ShowImage trong tập tin Manifest (trong cặp thẻ application)

Chạy ứng dụng, bấm vào biếu tượng bất kì sẽ hiển thị và thực hiện kéo sang trái và sang phải để

thấy hiệu ứng.

Page 18: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

18 Học Lập trình ứng dụng Android|

Bài 6: Sử dụng Spinner

Bài hướng dẫn học Lập trình Android này sẽ hướng dẫn các bạn thao tác với điều khiển Spinner để

thay đổi kích thước chữ của một TextView. Tạo Project, mở tập tin activity_main.xml và thêm điều

khiển Spinner như sau:

Khai báo biến Spinner, TextView và mảng Size trong lớp MainActivity

Trong hàm onCreate tiến hành tham chiếu cho Spinner và Textview, tạo Adapter và tiến hành xử lý

sự kiện khi người dùng chọn một item trong Spinner bằng phương thức setOnItemSelectedListener.

Page 19: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

19 Học Lập trình ứng dụng Android|

Tiến hành chạy ứng dụng và bấm vào Spinner chọn item để xem sự thay đổi của chữ “Hello World!”

Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/72cavm5kv9q6xzy/DemoSpinner.rar

Page 20: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

20 Học Lập trình ứng dụng Android|

Bài 7: Sử dụng AutoCompleteTextView và MultiAutoCompleteTextView

AutoCompleteTextView và MultiAutoCompleteTextView là hai điều khiển có thể hỗ trợ người dùng

khá nhiều trong quá trình nhập liệu khi Lập trình trên Android. Ví dụ khi người dùng nhập một từ,

điều khiển sử tự động tìm dữ liệu tương ứng để hoàn thành từ đó mà không cần người dùng nhập

hết.

Đầu tiên mở tập tin activity_main.xml thêm đoạn code sau:

Trong thư mục res/layout tạo thêm tập tin item_layout.xml có nội dung như sau:

Page 21: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

21 Học Lập trình ứng dụng Android|

Trong lớp MainActivity khai báo mảng String làm dữ liệu:

Trong hàm onCreate khai báo tham chiếu các đối tượng và Adapter dữ liệu như sau:

Chạy ứng dụng thử gõ vào hai điều khiển ta sẽ thấy các dữ liệu tự động hiển thị như hình. Lưu ý đối

với AutoCompleteTextView ta chỉ có thể sử dụng được một lần tự động điền dữ liệu, còn

MultiAutoCompleteTextView các dữ liệu được tự động điền nhiều lần và cách nhau bằng dấu phẩy.

Page 22: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

22 Học Lập trình ứng dụng Android|

Tải mã nguồn ứng dụng tại:

https://www.dropbox.com/s/95kxf8ls143rhx9/DemoAutoCompleteTextView.rar

Bài 8: Sử dụng TabHost

Học Lập trình Android: Cách sử dụng TabHost. Giống như trên Windows, Android cũng có có điều

khiển dạng thẻ Tab cho phép người dùng có thể chuyển đổi các khung nhìn với các nội dung khác

nhau trong cùng một giao diện cửa sổ (Activity).

Đầu tiên ta mở tập tin activity_main.xml trong thư mục res/layout và chỉnh sửa nội dung như sau:

Page 23: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

23 Học Lập trình ứng dụng Android|

Mở tập tin MainActivity trong mục src, cho lớp MainActivity kế thừa từ lớp TabActivity thay vì

lớp Activity như sau:

Trong hàm onCreate khai báo các biến TabHost như sau:

Page 24: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

24 Học Lập trình ứng dụng Android|

Chạy ứng dụng và di chuyển qua các thẻ khác bằng cách bấm vào Tab.

Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/fnkcngbeh6bit0s/DemoTabActivity.rar

Page 25: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

25 Học Lập trình ứng dụng Android|

Bài 9: Ứng dụng hỗ trợ đa ngôn ngữ và màn hình

xoay ngang

Hướng dẫn Lập trình Android: tạo ứng dụng hỗ trợ đa ngôn ngữ và màn hình xoay ngang

Tạo project mới, trong thư mục res tạo các thư mục như sau:

Mở tập tin strings.xml trong thư mục values bổ sung các biến string như sau:

Mở tập tin trong activity_main.xml trong thư mục layout thiết kế như sau, lưu ý thuộc tính text của

các Button phải trỏ đến các biến string ở trên (ví dụ android:text = “@string/left_top”):

Page 26: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

26 Học Lập trình ứng dụng Android|

Thực hiện chạy ứng dụng, khi ứng dụng đã hiện trên màn hình máy ảo, thực hiện tổ hợp phím

Ctrl+F12 để xoay màn hình, ta sẽ thấy vị trí các nút sẽ bị sai.

Thực hiện chép tập tin activity_main.xml trong thư mục layout vào thư mục layout-land, chỉnh sửa lại

vị trí các nút như sau:

Page 27: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

27 Học Lập trình ứng dụng Android|

Đồng thời chép tập tin strings.xml vào thư mục values-vi chỉnh sửa như sau:

Chạy ứng dụng xoay màn hình để thấy giao diện nằm ngang. Xem giao diện tiếng Việt của ứng

dụng bằng cách trên máy ảo vào Setting à Language & Input à phần language chọn ngôn ngữ là

tiếng Việt.

Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/l7fcc5t2h3vpq1g/DemoMultiLangagues.zip

Page 28: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

28 Học Lập trình ứng dụng Android|

Bài 10: Ứng dụng sử dụng Fragment và ViewPager

Hướng dẫn tự học Lập trình Android: Bài 10 - Ứng dụng sử dụng Fragment và ViewPager

Từ phiên bản Android 3.0 trở lên, bộ SDK bổ sung Fragment cho phép người dùng xây dựng giao

diện ứng dụng bằng cách tái sử dụng các tập tin Layout.

Tạo project mới, trong thư mục res/layout bổ sung tập tin giao diện fragment_layout.xml nội dung

như sau:

Mở tập tin strings.xml trong thư mục values bổ sung các biến string như sau:

Page 29: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

29 Học Lập trình ứng dụng Android|

Mở tập tin activity_main.xml khai báo đối tượng ViewPager (lưu ý điều khiển này được xây dựng

trong gói android.support.v4.view do đó ta không thể kéo thả từ giao diện mà phải chỉnh sửa trong

code xml) như sau:

Trong tập tin MainActivity.java ta khai báo một inner class (lớp con) kế thừa từ lớp

FragmentPageAdapter.

Page 30: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

30 Học Lập trình ứng dụng Android|

Sau đó chỉnh sử hàm onCreate như sau:

Thực hiện chạy ứng dụng, dùng thao tác kéo màn hình từ trái sáng phải để thấy hiệu ứng của View

Pager.

Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/d901afb9a0go9it/DemoViewPager.zip

Page 31: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

31 Học Lập trình ứng dụng Android|

Bài 11: Ứng dụng đọc ghi tập tin kết hợp sử dụng Broadcast Receiver

Hướng dẫn Lập trình trên Android: Trong bài này, tôi sẽ hướng dẫn các bạn viết ứng dụng cho phép

lưu trữ tập tin, tất nhiên không nhất thiết phải sử dụng Broadcast Receiver mới có thể đọc ghi tập

tin, ta chỉ sử dụng lớp này để tăng tính tiện lợi.

Đầu tiên, mở tập tin activity_main.xml và thiết kế giao diện như sau:

Trong lớp MainActivity.java khai báo các biến cần thiết bao gồm 2 Button, một EditText và lớp

MyReceiver kế thừa từ lớp từ BroadcastReceiver có nội dung như sau:

Page 32: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

32 Học Lập trình ứng dụng Android|

Dưới hàm onReceive khai báo hai phương thức readFile và writeFile như sau:

Cho phép MainActivity thực hiện Interface OnClickListener và vào phương thức onCreate tham

chiếu đến các biến đã khai báo và thực hiện đăng kí Receiver.

Page 33: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

33 Học Lập trình ứng dụng Android|

Cuối cùng thực hiện hàm onClick như sau:

Page 34: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

34 Học Lập trình ứng dụng Android|

Cuối cùng thực hiện hàm onClick như sau:

Để thực hiện lưu trữ tập tin trên sdCard bạn phải xin quyền trong tập tin AndroidManifest.xml (ở

dưới cùng Project) như sau:

Thực hiện chạy ứng dụng và thao tác với các nút đọc và ghi tập tin.

Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/fnkcngbeh6bit0s/DemoTabActivity.rar

Page 35: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

35 Học Lập trình ứng dụng Android|

Bài 12: Tùy chỉnh hiển thị ListView

Trong Bài 3 tôi có hướng dẫn các bạn Lập trình Android các hiển thị dữ liệu theo dạng danh sách

ListView, tuy nhiên nhược điểm của cách này là chỉ có thể hiển thị 1 dòng dữ liệu. Nhưng trong

trường hợp ta cần thể hiện nhiều dòng dữ liệu phức tạp hơn như ví dụ sau:

Ta có thể thể trong ứng dụng Gmail có khá nhiều cho dữ liệu cho một dòng dữ liệu như tiêu đề, tên

người gửi, ngày tháng gửi…do đó ta cần thực hiện tùy chỉnh Listview để có thể hiển thị như trên.

Đầu tiên ta cần xác định có bao nhiêu dữ liệu trên một dòng và tiến hành xây dựng lớp tương ứng.

Ví dụ ở đây tôi cần hiển thị cho 3 dữ liệu trên 1 dòng thông tin về một quốc gia bao gồm cờ, tên

tiếng anh, tên tiếng việt. Ta xây dựng lớp Country đại diện như sau:

Page 36: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

36 Học Lập trình ứng dụng Android|

Để có thể hiển thị dữ liệu như mong muốn ta cần xây dựng layout cho mỗi dòng trên Listview.

Tiếp theo ta cần xây dựng lớp Adapter cho phép đưa dữ liệu lên ListView. Ở đây tôi xây dựng lớp

MyAdapter.

Page 37: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

37 Học Lập trình ứng dụng Android|

Ngay trong lớp này ta sẽ bổ sung thêm phương thức getView cho phép định dạng cho từng

dòng dữ liệu.

Tiếp theo ta xây dựng các đối tượng tương ứng và các dữ liệu cần thiết trong lớp MainActivity. Lưu

ý nhớ chép các file hình vào thư mục res/drawable.

Page 38: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

38 Học Lập trình ứng dụng Android|

Cuối cùng trong hàm onCreate khởi tạo dữ liệu và setAdapter cho Listview.

Lưu ý ta sửa tập tin activity_main.xml như sau:

Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/kzsrov4b0xjqfng/DemoCustomListView.rar

Page 39: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

39 Học Lập trình ứng dụng Android|

Bài 13: Sử dụng Option Menu

Trong ứng dụng trên thiết bị di động do hạn chế về kích thước màn hình nên các thao tác có tần số

sử dụng nhiều mới được thiết kế ngay trên màn hình ứng dụng. Các thao tác khác sẽ được thu gọn

trong Menu của ứng dụng, để gọi Menu này người dùng phải bấm phím Menu trên thiết bị. Trong

bài hướng dẫn Lập trình trên Android này, tôi sẽ hướng dẫn các bạn thiết kế Option Menu cho ứng

dụng của mình kèm theo cách chỉnh sửa phông và màu chữ.

Thiết kế màn hình ứng dụng gồm một TextView và một Spinner, trong tập tin activity_main.xml ta

sửa thành như sau:

Vào lớp MainActivity bổ sung các biến sau:

Trong hàm onCrate bổ sung đoạn code sau:

Page 40: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

40 Học Lập trình ứng dụng Android|

Bổ sung các biến chuỗi để sử dụng trong tập tin strings.xml:

Trong thư mục res/menu tạo tập tin option_menu_font.xml và option_menu_color.xml với nội dung

như sau:

option_menu_font.xml

Page 41: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

41 Học Lập trình ứng dụng Android|

option_menu_color.xml

Thực hiện copy các phông chữ có định dạng *.ttf vào thư mục asset của Project (ví dụ: comic.ttf

hoặc arial.ttf).

Bổ sung phương thức khởi tạo Option Menu cho ứng dụng khi người dùng nhấn phím Menu

Để chuyển đổi giữa 2 menu ta chỉnh sửa lại phương thức onPrepareOPtionMenu như sau:

Page 42: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

42 Học Lập trình ứng dụng Android|

Trong thư mục res/values tạo tập tin colors.xml với nội dung sau:

Cuối cùng thực hiện bắt sự kiện khi người dùng chọn một item trên Menu:

Page 43: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

43 Học Lập trình ứng dụng Android|

Chạy ứng dụng, chọn Fonts hoặc Colors trong Spinner sao đó bấm phím Menu trên thiết bị, khi giao

diện Menu hiển thị chọn một item để thấy hiệu ứng.

Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/5zy6stbjchffzjr/DemoOptionMenu.rar

Page 44: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

44 Học Lập trình ứng dụng Android|

Bài 14: Sử dụng Context Menu

Hướng dẫn học lập trình Android: Đối với hầu hết các ứng dụng hiện nay, bao gồm ứng dụng có

sẵn trên thiết bị lẫn ứng dụng từ hãng thứ ba phát triển có thể nhận thấy điều khiển được sử dụng

nhiều nhất chính là ListView (hướng dẫn cơ bản ở bài 3 và nâng cao ở bài 12). Dạng điều khiển

danh sách cho phép chúng ta lưu trữ được nhiều trường dữ liệu trên cùng một màn hình, tuy nhiên

việc thao tác với từng mục sẽ khó hơn nếu không có sự hỗ trợ từ Context Menu, một dạng menu

giống như chuột phải trên Windows vậy.

Tạo project trong thư mục res/values bổ sung vào tập tin strings.xml đoạn mã sau:

Từ thư mục res/menu tạo tập tin context_menu.xml, đây là tập tin sẽ cấu hình nội dung cho menu,

có nội dung như sau:

Trong bài này ta sử dụng Listview để tương tác nên cần xây dựng một layout cho từng mục trên đó.

Chuột phải vào thư mục res/layout à New à Android XML File à Phần File ta đặt tên tập tin là

item_layout, phần Root Element ta chọn TextView. Chỉnh sửa nội dung giống như sau:

Page 45: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

45 Học Lập trình ứng dụng Android|

Kéo điều khiển ListView vào trong tập tin activity_main.xml và bổ sung đoạn mã sau vào tập tin

MainActivity.xml:

Khởi chạy ứng dụng, nhấn và giữ một mục bất kỳ trên ListView ta sẽ thấy một pop-up xuất hiện, tuy

nhiên lúc này ta vẫn chưa xử lý cho các mục trên menu.

Page 46: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

46 Học Lập trình ứng dụng Android|

Để thực hiện xử lý ta cần Override lại phương thực OnContextItemSelected, ở đây có ba thao tác

(Delete-Update-Share) nhưng tôi chỉ thực hiện phần Delete, hai thao tác còn lại các bạn làm tương

tự.

Page 47: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

47 Học Lập trình ứng dụng Android|

Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/8vqiiwnpihfci5a/DemoContextMenu.rar

Page 48: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

48 Học Lập trình ứng dụng Android|

Bài 15: Action Bar & Action Mode (Phần 1)

Ở bài trước ta đã làm việc với Option Menu, tuy nhiên từ phiên bản Android 3.0 trở lên Action Bar

được sử dụng để thay thế mang lại các thao tác dễ dàng hơn cho người dùng. Trong bài học lập

trình Android này tôi sẽ hướng dẫn các bạn thao tác Action Bar với ListView.

Tạo project, trong thư mục res/layout tạo tập tin item_layout.xml có nội dung như sau:

Trong lớp MainActivity tạo mới lớp tên Item để tổ chức dữ liệu cho một dòng trên Listview

Page 49: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

49 Học Lập trình ứng dụng Android|

Trên hàm onCreate() khai báo các biến cần thiết để thao tác dữ liệu:

Tiếp tục tạo thêm lớp MyAdapter cho phép đưa dữ liệu lên ListView:

Chỉnh sửa tập tin main.xml trong thư mục res/menu như sau:

Page 50: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

50 Học Lập trình ứng dụng Android|

Bổ sung các đoạn code cần thiết trong onCreate() để khởi chạy ứng dụng.

Khi chạy ứng dụng lên ta sẽ thấy nút “Add” nằm ở góc phải màn hình. Để xử lý tương tác ta cần

thực thi phương thức onOptionItemSelected.

Page 51: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

51 Học Lập trình ứng dụng Android|

Thực thi chạy vào thao tác thêm dữ liệu, phần xóa chúng ta sẽ thực hành trong phần ActionMode ở

kì sau.

Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/ueoxsagy10q7ov1/DemoActionBar.rar

Page 52: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

52 Học Lập trình ứng dụng Android|

Bài 16: Action Bar & Action Mode (Phần 2)

Học Lập trình Android, bài 16, chúng ta sẽ tiếp tục thực hành với Action Mode một phần không thể

thiểu trên Action Bar.

Từ Project, mở tập tin MainActivity.java bổ sung các biến sau:

Trong thư mục res/menu tạo tập tin action_bar_menu.xml với nội dung như sau:

Vào phương thức onCreate khởi tạo interface ActionMode.Callback, interface sẽ tự động phát sinh

ra 4 phương thức hỗ trợ chúng ta thao tác với Action Mode như khởi tạo, tương tác hoặc hủy.

Page 53: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

53 Học Lập trình ứng dụng Android|

Trong hàm onCreateActionMode chỉnh sửa đoạn code khởi tạo giao diện menu như sau:

Vào phương thức getView của lớp MyAdapter bổ sung đoạn code khi người dùng bấm chọn trên

checkbox của một Item. (Bổ sung ngay trên câu lệnh “return v;”)

Page 54: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

54 Học Lập trình ứng dụng Android|

Lúc này khi bấm chọn vào một Item ta sẽ thấy xuất hiện Menu cho xóa, tuy nhiên để xử lý việc xóa

ta cần bổ sung thêm đoạn code trong hàm onActionItemClicked sau:

Page 55: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

55 Học Lập trình ứng dụng Android|

Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/8b396d8cp396ft2/DemoActionBar2.rar

Page 56: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

56 Học Lập trình ứng dụng Android|

Bài 17: Sử dụng Webview Load HTML

Học Lập trình Android bài 17: hướng dẫn các bạn thực hành tạo webview để load các thông tin từ

một trang web bất kỳ, tất nhiên ứng dụng cần phải được phép truy cập internet. Tạo project, mở tập

tin AndroidManifest.xml bổ sung đoạn code sau (ngay trước cặp thẻ application).

Tiếp theo ta sẽ xây dựng layout, để có thể load một trang html điều cần thiết là phải có điều khiển

Webview, ở đây ta bổ sung thêm một EditText cho phép người dùng có thể linh hoạt điền các địa chỉ

URL khác nhau và một Button để xác nhận.

Mở tập tin values/strings.xml bổ sung 2 biến sau:

Vào thư mục res/layout mở tập tin activity_main.xml chỉnh sửa như sau:

Page 57: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

57 Học Lập trình ứng dụng Android|

Xong phần giao diện, giờ ta qua phần xử lý khi người dùng nhập một địa chỉ URL vào ô EditText.

Mở tập tin MainActivity.java bổ sung các biến toàn cục sau:

Viết phương thức openBrowser cho phép load địa chỉ URL vào Webview

Page 58: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

58 Học Lập trình ứng dụng Android|

Sau đó trong hàm onCreate ta tiến hành khởi tạo các biến có liên quan và bắt sự kiện khi người

dùng đã điền địa chỉ URL và nhấn phímEnter.

Bổ sung thêm đoạn code khi người dùng nhấn phím GO thay vì nhấn phím Enter.

Thực hiện build ứng dụng và nhập địa chỉ vào ô EditText, nhấn phím Enter hoặc bấm phím GO để

xem kết quả.

Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/q558dwwfa1iwnut/DemoWebView.zip

Page 59: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

59 Học Lập trình ứng dụng Android|

Bài 18: Sử dụng Dialog Fragment

Dialog là dạng cửa sổ nhỏ cho phép người dùng có thể nhập thông tin hoặc đưa ra các quyết định

cuối cùng trong một chuỗi xử lý sự kiện. Ví dụ khi người dùng thoát ứng dụng hoặc xóa dữ liệu ta

cần đưa ra một cửa sổ nhỏ để xác nhận thông tin lại lần cuối.

Trong bài học Lập trình Android này tôi sẽ hướng dẫn các bạn tạo Dialog Fragment (một dạng API

mới) cho phép người dùng nhập liệu.

Tạo Project trong thư mục res/layout tạo tập tin fragment_edit_layout.xml với nội dung như sau, tập

tin này sẽ được dùng làm layout cho Dialog:

Mở tập tin activity_main.xml thêm nút bấm vào để hiển thi Dialog.

Page 60: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

60 Học Lập trình ứng dụng Android|

Tiếp theo tạo lớp EditNameDialog kế thừa từ lớp FragmentActivity và nhận sự kiện

onEditorActionListener (bắt lại sự kiện khi người dùng thao tác với bàn phím). Trong lớp này ta cũng

tạo ra interface EditNameDialogListener để nhận dữ liệu người dùng đã nhập.

Page 61: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

61 Học Lập trình ứng dụng Android|

Lưu ý lớp DialogFragment nên nằm trong gói android.support.v4.app.DialogFragment để tiện cho

các việc tương thích ngược trên các dòng máy có phiên bản hệ điều hành thấp hơn 3.0.

Page 62: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

62 Học Lập trình ứng dụng Android|

Thực hiện build ứng dụng, nhấn nút Input để hiện Dialog sau đó nhập liệu vào ô EditText rồi nhấn

phím Done trên bàn phím để xem kết quả.

Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/mzaqodf5ttqi5hr/DemoDialogFragment.rar

Page 63: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

63 Học Lập trình ứng dụng Android|

Bài 19: Thông báo bằng Status Notification

Ở bài học Lập trình Android trước chúng ta đã thực hiện thông báo cho người bằng Dialog, tuy

nhiên cách này chỉ sử hiệu quả khi người dùng tương tác với ứng dụng. Trong các trường hợp để

bảo đảm thông báo một cách hợp lý đến người dùng mà không ngắt ngang tương tác với ứng dụng

khác ta sẽ sử dụng Status Notification, cho dù người dùng có mở ứng dụng hoặc không. Có thể

thấy điều này thông qua một số ứng dụng có sẵn trong thiết bị như Message, Gmail...

Tạo mới Project, thiết kế layout có giao diện bao gồm một EditText, TextView và Button như sau

(nên thiết kế vào tập tin activity_main.xml):

Vào MainActivity khai báo các biến cần thiết trong hàm onCreate:

Page 64: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

64 Học Lập trình ứng dụng Android|

Bổ sung phương thức createNotification, trong phương thức này ta sẽ định nghĩa giao diện cho một

thông báo bao gồm các thông tin như nội dung, tiêu đề, biểu tượng, thời gian gửi...nhưng quan

trọng nhất là dữ liệu đính kèm trong intent.

Page 65: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

65 Học Lập trình ứng dụng Android|

Tiến hành xây dựng activity NotificationDetails để nhận dữ liệu khi người dùng nhấn vào thông báo:

Page 66: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

66 Học Lập trình ứng dụng Android|

Thực hiện build ứng dụng, điền dữ liệu vào EditText và nhấn nút Tạo thông báo. Ta sẽ nhận được

thông báo như sau:

Bấm vào thông báo để xem nội dung đã điền trong EditText.

Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/5wcq5tum0vdz4ze/DemoNotification.rar

Page 67: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

67 Học Lập trình ứng dụng Android|

Bài 20: Tích hợp SearchView vào ứng dụng

Trong ứng dụng khi thực hiện thao tác với khối dữ liệu lớn, hoặc muốn truy xuất ngay tức thời một

tập tin nào đó người dùng thường hay bối rối và mất nhiều thời gian để tìm ra chúng. Ở bài dạy Lập

trình Android này tôi sẽ hướng dẫn các bạn tích hợp điều khiển SearchView vào ứng dụng cho phép

tìm kiếm một dòng dữ liệu trong ListView.

Tạo Project, thực hiện kéo ListView vào tập tin activity_main.xml

sau đó trong thư mục res/menu/ tạo tập tin search_view.xml thực hiện khai báo như sau:

Mở tập tin MainActivity.java, cho lớp MainActivity thực thi giao diện onQueryTextListener và tiến

hành khai báo các biến cần thiết.

Page 68: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

68 Học Lập trình ứng dụng Android|

Vào hàm onCreate thực hiện khởi tạo và tham chiếu giá trị cho các biến đã khai báo ở trên.

Override phương thức onCreateOptionMenu để thực hiện thêm SearchView vào thanh ActionBar.

Cuối cùng thực thi hai phương thức truy vấn dữ liệu khi người dùng nhập khung SeachView, ở đây

đơn giản ta gọi phương thức filter để Adapter tự sắp xếp dữ liệu.

Page 69: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

69 Học Lập trình ứng dụng Android|

Thực hiện chạy ứng dụng bấm vào biểu tượng tìm kiếm, một EditText sẽ xuất hiện, tiến hành nhập

liệu ListView sẽ tự động tìm kiếm và sắp xếp dữ liệu cho chúng ta.

Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/v1gxxewqflz3ue0/DemoSearchView.rar

Page 70: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

70 Học Lập trình ứng dụng Android|

Bài 21: Custom Windows

Trong những bài hướng dẫn Lập trình Android trước chúng ta đã thực hành khá nhiều giao diện

bằng cách xây dựng layout cho Activity. Nhưng thật ra để có thể quản lý Activity ở phía bên dưới

chúng ta còn một đối tượng khác nữa, đó chính là Windows. Trong bài này, tôi sẽ hướng dẫn các

bạn xây dựng layout cho Activity mà không cần dùng đến hàm setContentView quen thuộc nữa.

Đầu tiên xây dựng layout row.xml với nội dung như sau:

Tiếp theo chỉnh sửa tập tin activity_main.xml để xây dựng giao diện chủ

Page 71: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

71 Học Lập trình ứng dụng Android|

Trog tập tin MainActivity.java ta tiến hành tham chiếu đến các điều khiển đã khai báo trong XML và

thực hiện xử lý hàm onClick cho hai nút bấm. Lưu ý tất cả viết trong hàm onCreate.

Page 72: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

72 Học Lập trình ứng dụng Android|

Thực hiện build ứng dụng, bấm vào 2 nút để thấy kết quả.

Tải mã nguồn ứng dụng ở đây:

https://www.dropbox.com/s/htnb6buvxdg1bsl/DemoCustomWindows.rar

Page 73: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

73 Học Lập trình ứng dụng Android|

Bài 22: VelocityTracker và ứng dụng trong lập trình Game.

Trong bài về ViewFlipper tôi đã có hướng dẫn các bạn sử dụng onTouchListener để bắt lại sự kiện

cảm ứng trên màn hình thiết bị. Ngoài cách này Android còn cung cấp cho chúng ta lớp

VelocityTracker cho phép ta ghi lại vận tốc di chuyển của một đối tượng trên màn hình, do đó minh

họa này sẽ rất hữu ích cho các bạn yêu thích Lập trình Game.

Tạo Project, thực hiện tạo một đối tượng custom bằng Java code như sau:

Page 74: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

74 Học Lập trình ứng dụng Android|

Sau đó tùy chỉnh tập tin giao diện activity_main.xml đơn giản chỉ bao gồm một đối tượng DotView và

hai TextView dùng để ghi nhận dữ liệu gia tốc như sau:

Mở tập tin MainActivity.java, cho lớp MainActivity thực thi phương thức onTouchEvent đồng thời

khai báo tham chiếu đến đối tượng custom sử dụng phương thức này để có thể di chuyển. Trong

lớp này ta cũng sử dụng lớp Velocitytracker để ghi nhận vận tốc khi ta di chuyển đối tượng.

Page 75: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

75 Học Lập trình ứng dụng Android|

Page 76: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

76 Học Lập trình ứng dụng Android|

Chạy ứng dụng thực hiện kéo và thả đồi tượng để thấy hiệu ứng, tuy đơn giản nhưng các bạn có

thể sử dụng trong nhiều trường hợp khác nhau khi cần thiết.

Tải mã nguồn ứng dụng tại:

https://www.dropbox.com/s/m5hzuhtnj7nwj94/DemoVelocityTracker.rar

Page 77: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

77 Học Lập trình ứng dụng Android|

Bài 23: Xây dựng ứng dụng chụp ảnh với Camera API

Android cung cấp cho chúng ta hầu như các API để tương tác với tất cả các thiết bị phần cứng, tuy

nhiên có thể nói trong số đó Camera là phần khá hấp dẫn và lý thú. Trong bài này tôi sẽ hướng dẫn

sơ lược về cách xây dựng ứng dụng Android chụp ảnh cơ bản nhất. Phần hoàn thiện và hiệu ứng

sẽ cập nhật trong bài sau.

Để bắt đầu làm chúng ta sẽ không xây dựng giao diện, mà việc đầu tiên là tập tin Manifest và xin hai

quyền sau:

Như vậy là chúng ta đã có quyền truy cập vào Camera của thiết bị. Tiếp theo ta sẽ xây dựng giao

diện bao gồm một SurfaceView, ImageButton và HorizontalScrollView.

Page 78: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

78 Học Lập trình ứng dụng Android|

Mở tập tin MainActivity. Java khai báo 2 biến toàn cục là Camera và Layout chứa các tấm hình chụp

được, sau đó tham chiếu các đối tượng trong hàm onCreate.

Thực hiện truy xuất dữ liệu từ Camera bằng các thực thi các hàm trong Interface Callback của đối

tượng SurfaceHolder.

Page 79: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

79 Học Lập trình ứng dụng Android|

Cuối cùng xử lý cho nút chụp hình, đăng ký hàm onClickListener và cho phép thực thi hàm

PictureCallback trong lớp Camera.

Page 80: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

80 Học Lập trình ứng dụng Android|

Thực hiện build ứng dụng và trải nghiệm với Camera API.

Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/ywd48bk3gbyxf08/DemoCamera.rar

Page 81: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

81 Học Lập trình ứng dụng Android|

Bài 24: View Animation

Trong Lập trình ứng dụng Android, Animation (các chuyển hoạt) như một thành phần cốt yếu để

tăng thêm trải nghiệm cho người dùng trong quá trình sử dụng. Trong loạt bài tiếp theo, tôi sẽ

hướng dẫn các bạn làm quen với các Animation API. Bài đầu tiên chúng ta sẽ làm quen với View

Animation.

ViewAnimation được sử dụng rộng rãi trong hầu hết các phiên bản Android, tính tiện dụng cao cũng

như dễ dàng khai báo. Nếu như các chuyển hoạt không quá phức tạp thì ViewAnimation nên là lựa

chọn đầu tiên.

Trong ViewAnimation bao gồm các chuyển hoạt sau: scale (phóng to hoặc thu nhỏ), alpha (độ trong

suốt), translate (thay đổi vị trí) và rotate (quay).

Tạo Project, trong thư mục res tạo thư mục anim, sau đó lần lượt tạo các tập tin sau:

Khai báo cho từng tập tin tương ứng:

+ alpha_anim.xml

Page 82: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

82 Học Lập trình ứng dụng Android|

+ rotate_anim.xml

+ scale_anim.xml

+ translate_anim.xml

+ set_anim.xml

Page 83: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

83 Học Lập trình ứng dụng Android|

Mở tập tin activity_main.xml, thiết kế giao diện với các điều khiển như sau:

View android:id android:text

Button btnAlpha Alpha

Button btnRotate Rotate

Button btnScale Scale

Button btnTranslate Translate

Button btnSet Set

TextView textAnim

Hello View

Animation!

Page 84: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

84 Học Lập trình ứng dụng Android|

Vào trong tập tin MainActivity tiến hành khai báo và khởi tạo các thành phần trong giao diện và thiết

lập Animation thông qua các lớp tương ứng. Viết phương thức setUpAnimation để xử lý chung cho

các tất cả Animation.

Xử lý và gọi phương thức trong hàm onCreate.

Page 85: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

85 Học Lập trình ứng dụng Android|

Thực hiện cài ứng dụng lên thiết bị, bấm các nút Animation để xem hiệu ứng.

Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/kib00z6nqvk8att/DemoViewAnimations.rar

Page 86: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

86 Học Lập trình ứng dụng Android|

Bài 25: Property Animation

Lập trình Android bài 25. Trong bài trước tôi đã hướng dẫn các bạn cách sử dụng View Animation,

tuy nhiên từ phiên bản Android 3.0 trở lên bộ SDK được bổ sung thêm một cách thức nữa để làm

việc với các chuyển hoạt được gọi là Property Animation. Về bản chất cả hai như nhau, tuy nhiên

đối với Property Animation ta sẽ chỉ định thuộc tính mà chúng ta muốn thực hiện chuyển hoạt.

Tạo Project, trong thư mục res tạo thư mục animator, sau đó lần lượt tạo các tập tin sau:

Khai báo cho từng tập tin tương ứng:

+ fade.xml

+ move.xml

+ scale.xml

Page 87: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

87 Học Lập trình ứng dụng Android|

+ spin.xml

+ combo.xml

Page 88: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

88 Học Lập trình ứng dụng Android|

Mở tập tin activity_main.xml, thiết kế giao diện với các điều khiển như sau:

View android:id android:text

Button btnFade Fade

Button btnSpin Spin

Button btnScale Scale

Page 89: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

89 Học Lập trình ứng dụng Android|

Vào trong tập tin MainActivity tiến hành khai báo và khởi tạo các thành phần trong giao diện và gọi

phương thức loadAnimator từ lớp AnimatorInflater để truyền các thông số từ tập tin xml vào đối

tượng Animator . Viết phương thức setUpAnimation để xử lý chung cho các tất cả Animatior đó.

Button btnMove Move

Button btnCombo Combo

TextView textAnim

Hello Property

Animation!

Page 90: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

90 Học Lập trình ứng dụng Android|

Thực hiện cài ứng dụng lên thiết bị, bấm các nút Animation để xem hiệu ứng.

Tải mã nguồn ứng dụng

tại: https://www.dropbox.com/s/kib00z6nqvk8att/DemoViewAnimations.rar

Page 91: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

91 Học Lập trình ứng dụng Android|

Bài 26: Expandable Listview

Trong bài dạy Lập trình Android này, tôi sẽ hướng dẫn các bạn sử dụng Expandable Listview, đối

tượng mở rộng từ lớp Listview và tích hợp thêm tính năng gom nhóm các “item”, cho phép hiển

thiện theo dạng danh sách có thể thu gọn hoặc hiển thị đầy đủ.

Để xây dựng đối tượng này các bạn thực hiện tạo project, mở tập tin activity_main.xml chỉnh sửa

như sau:

(hoặc thao tác nhanh bằng cách kéo thả từ Palette à Composite à Expandable Listview).

Ta cần tạo tập tin layout cho “group” và “item”:

+ layout_group_list.xml

Page 92: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

92 Học Lập trình ứng dụng Android|

+ layout_item_list.xml

Tạo lớp ExpandAdapter kế thừa từ lớp BaseExpandableListAdapter (cần thực thi các phương thức

cần thiết của lớp). Hai phương thức getChildrenCount và getGroupCount thiết lập số lượng “group”

và số lượng “item” trong một “group” tương ứng.

Page 93: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

93 Học Lập trình ứng dụng Android|

Cũng trong lớp này tiến hành xây dựng giao diện cho “group” thông qua phương getGroupView và

giao diện “item” thông qua getChildView.

Page 94: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

94 Học Lập trình ứng dụng Android|

Page 95: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

95 Học Lập trình ứng dụng Android|

Thực hiện cài ứng dụng lên thiết bị, bấm các “group” để thấy các “item” bên trong.

Tải mã nguồn ứng dụng tại:

https://www.dropbox.com/s/c5oli37bfedxusb/DemoExpandableListview.rar

Page 96: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

96 Học Lập trình ứng dụng Android|

Bài 27: Layout Change Animation

Trong bài Lập trình Android này, tôi sẽ hướng dẫn các bạn sử dụng Expandable Listview, đối tượng

mở rộng từ lớp Listview và tích hợp thêm tính năng gom nhóm các “item”, cho phép hiển thiện theo

dạng danh sách có thể thu gọn hoặc hiển thị đầy đủ.

Để xây dựng đối tượng này các bạn thực hiện tạo project, mở tập tin activity_main.xml chỉnh sửa

như sau:

(hoặc thao tác nhanh bằng cách kéo thả từ Palette à Composite à Expandable Listview).

Ta cần tạo tập tin layout cho “group” và “item”:

+ layout_group_list.xml

Page 97: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

97 Học Lập trình ứng dụng Android|

+ layout_item_list.xml

Tạo lớp ExpandAdapter kế thừa từ lớp BaseExpandableListAdapter (cần thực thi các phương thức

cần thiết của lớp). Hai phương thức getChildrenCount và getGroupCount thiết lập số lượng “group”

và số lượng “item” trong một “group” tương ứng.

Page 98: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

98 Học Lập trình ứng dụng Android|

Cũng trong lớp này tiến hành xây dựng giao diện cho “group” thông qua phương getGroupView và

giao diện “item” thông qua getChildView.

Page 99: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

99 Học Lập trình ứng dụng Android|

Page 100: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

100 Học Lập trình ứng dụng Android|

Thực hiện cài ứng dụng lên thiết bị, bấm các “group” để thấy các “item” bên trong.

Tải mã nguồn ứng dụng tại:

https://www.dropbox.com/s/c5oli37bfedxusb/DemoExpandableListview.rar

Page 101: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

101 Học Lập trình ứng dụng Android|

Bài 28: Alarm Service

Trên thiết bị di động thường thì thiết bị nào cũng được trang bị một ứng dụng dùng để thông báo

công việc cho người dùng hoặc là báo thức hoặc là nhắc nhở. Trong bộ phát triển phần mềm

Android, để hổ trợ các lập trình viên xây dựng các ứng dụng thông báo theo thời gian thực, Google

đã phát triển lớp AlarmManager để thực hiện điều này.

Giới thiệu sơ lược để các bạn hiểu thêm giờ tôi sẽ đi vào thực hành.

Tạo Project, mở tập tin giao diện activity_mainl.xml chỉnh sửa như sau:

Xây dựng lớp AlarmReceiver kế thừa từ lớp BroadcastReceiver, nhiệm vụ chính của lớp này là sẽ

hiện thông báo khi đến thời gian ta đã thiết lập trước.

Page 102: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

102 Học Lập trình ứng dụng Android|

Vào tập tin AndroidManifest.xml, dưới thẻ Activity bổ sung đăng ký cho Receiver như sau:

Mở tập tin MainActivty.java, ta sẽ bổ sung đoạn code để xử lý cho hai nút bấm khởi tạo Alarm và

dừng Alarm. Ở đây ta cũng cần khởi chạy AlarmReceiver khi vừa chạy ứng dụng.

Page 103: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

103 Học Lập trình ứng dụng Android|

Chạy ứng dụng, ta sẽ ứng dụng liên tục hiện Toast để thông báo giờ hiện tại cho dù có thoát ứng

dụng đi chăng nữa. Để dừng thông báo ta bấm nút Cancle Alarm.

Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/pqfb9kh8s9npo04/DemoAlarm.zip

Page 104: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

104 Học Lập trình ứng dụng Android|

Bài 29: ClipBoard

Từ phiên bản Android 3.0 trở lên, Android hỗ trợ lập trình viên một công cụ rất hữu ích trong việc

thực hiện xây dựng các thao tác sao chép và dán mang tên ClipBoard. Hầu hết các dạng dữ liệu từ

đơn giản đến phức tạp Clipboard đều hỗ trợ rất tốt, trong bài này tôi sẽ hướng dẫn các bạn Lập

trình trên Android, thực hiện sao chép các dữ liệu đơn giản bao gồm Text, Intent và URI.

Tạo Project trong tập tin layout activty_main.xml chỉnh sửa nội dung như sau:

Giao diện bao gồm 4 Button, 1 Spinner và 1 EditText.

Mở tập tin values/strings.xml bổ sung các biến cần thiết.

Page 105: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

105 Học Lập trình ứng dụng Android|

Cơ bản đã xong phần giao diện. Trong phần code xử lý chính ta sẽ khởi tạo đối tượng

ClipboardManager để thực hiện các thao tác sao chép và dán dữ liệu. Đối tượng

onPrimaryClipChangedListener dùng để lắng nghe các thay đổi dữ liệu trong Clipboard.

Mở tập tin MainActivity.java bổ sung đoạn code sau:

Trong hàm onCreate tiến hành khởi tạo và tham chiếu các đối tượng vừa khai báo cũng như đăng

ký lắng nghe sự thay đổi dữ liệu trong Spiner:

Page 106: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

106 Học Lập trình ứng dụng Android|

Xây dựng các phương thức thực hiện khi người thao tác trên các nút bấm.

Page 107: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

107 Học Lập trình ứng dụng Android|

Cuối cùng xây dựng phương thức updateClipData để thực hiện các cập nhật dữ liệu khi người dùng

thay đổi các định dạng dữ liệu sao chép và dán.

Page 108: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

108 Học Lập trình ứng dụng Android|

Tải mã nguồn ứng dụng tại: https://www.dropbox.com/s/4qeaibxhajreca5/DemoClipBoard.zip

Page 109: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

109 Học Lập trình ứng dụng Android|

Bài 30: Internet Resource

Một trong những yếu tố quan trọng góp phần sự thành công của điện thoại thông minh ngày nay

chính là nhờ vào sự tồn tại của Internet. Không tự nhiên mà Google từ một nhà quản lý dịch vụ

Internet lại chuyển sang mảng phát triển hệ điều hành và cuối cùng họ đã thành công với Android

khi tất cả dịch vụ của Google đều đến tận tay người dùng như Youtube, Gmail, Google+…

Trong tuần này tôi sẽ hướng dẫn các bạn cách kết nối đến Internet và lấy về dữ liệu dạng hình ảnh

và hiển thị nó. Tất nhiên là các bạn vẫn có thể thực hiện tương tự đối với dữ liệu khác.

Tạo Project, mở tập tin activity_main.xml chỉnh sửa như sau:

Ở layout trên ta có một Button để bắt đầu lấy dữ liệu, một Textview để hiện tên ảnh và một

ImageView dùng để hiển thị ảnh. Vào MainActivity.java lần lượt khai báo các đối tượng trên.

Page 110: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

110 Học Lập trình ứng dụng Android|

Biến url sẽ dùng để chứa địa chỉ ảnh, các bạn có dùng địa chỉ khác nếu muốn.

Khai báo phương thức để kết nối đến Internet và chuyển kết nối từ InputStream thành một hình ảnh

dạng Bitmap.

Từ phiên bản Android 4.0 trở lên chúng ta không được phép gọi các phương thức để thực hiện kết

nối đến Internet trên tiến trình chính, nên tôi sẽ sử dụng một tiến trình ngầm được hỗ trợ được gọi là

AsyncTask.

AsyncTask được phân ra hai nhiệm vụ chính là thực hiện các phiên làm việc trên tiến trình phụ

(phương thức doInBackground) và trả dữ liệu lên tiến trình chính khi thực hiện xong (phương thức

onPostExcute).

Page 111: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

111 Học Lập trình ứng dụng Android|

Công việc còn lại khá đơn giản, các bạn vào hàm onCreate tiến hành tham chiếu các đối tượng

trong xml và thực hiện gọi AsynTask khi người dùng nhấn nút.

Page 112: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

112 Học Lập trình ứng dụng Android|

Trước khi build ứng dụng, các bạn cần làm thao tác khá quan trọng đó là xin quyền kết nối Internet

trong tập tin AndroidManifest.xml vì chúng ta cần kết nối Internet mà!

Hướng dẫn Lập trình Android. Tải mã nguồn ứng dụng tại:

https://www.dropbox.com/s/ys8cz123dm3wnqy/DemoInternetResource.zip

Page 113: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

113 Học Lập trình ứng dụng Android|

Google Maps Android API – phần 1

Trong các bài tập tiếp theo đây Tui sẽ hướng dẫn các bạn từng bước tiếp cập với Google Map

thông qua các bài tập mẫu từ dễ lên khó, với mong muốn giúp các bạn có thể tự lập trình cũng như

cải tiến theo cách của mình và áp dụng một cách hiệu quả nhất vào ứng dụng của mình.

1) Cách Thiết lập Google Map trong ứng dụng Android:

Google Maps Android API (GMAA) bao gồm các dữ liệu bản đồ được phát triển bởi Google Inc cho

phép lập trình viên tích hợp vào các ứng dụng thông qua các phương thức được cung cấp sẵn.

GMAA hỗ trợ các thao tác với giao diện đồ họa của bản đồ bao gồm:

• Vẽ biểu tượng trên bản đồ (Marker).

• Đồ họa đường thẳng (Polylines).

• Đồ họa hình đa giác (Polygons).

• Bitmap trên bản đồ (Ground & Tile Overlay).

Google Maps Android API Key: chuỗi mã hóa được Google cung cấp miễn phí để quản lý và chứng

thực việc truy xuất dữ liệu bản đồ trên ứng dụng

(được lấy trên https://code.google.com/apis/console).

GMAA Key được liên kết thông qua Digital Cerfiticate (DC-Chứng thư số) và Pakage Name (Tên

đóng gói) của ứng dụng.

Tạo GMAA Key bao gồm 3 bước chính như sau:

Bước 1: Truy xuất thông tin DC bằng mã SHA-1 (dùng command line hoặc từ eclipse).

Bước 2: Đăng ký Project trong Google API Console.

Bước 3: Tích hợp Google Map Service vào Project và gửi yêu cầu cấp GGMA Key.

Page 114: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

114 Học Lập trình ứng dụng Android|

Trong mọi ứng dụng liên quan tới Google Map thì cần Cấu hình tập tin AndroidManifest về một số

thứ như:

Khai báo một số quyền truy cập phần cứng và sử dụng dữ liệu người dùng.

Việc xác định quyền sử dụng dữ liệu bản đồ thông qua GMAA KEY. KEY này được khai báo trong

tag meta-data nằm trong tag application:

<meta-data

android:name="com.google.android.maps.v2.API_KEY" android:value="API_KEY"/>

Với API_KEY là được lấy từ Google Developers

Khai báo version sử dụng:

<meta-data

android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />

Một số quyền cần thiết lập trong Manifest như sau:

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

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

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

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

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

Cần cung cấp OpenGL 2.0 cho việc đồ họa bản đồ:

<uses-feature

android:glEsVersion="0x00020000" android:required="true"/>

Page 115: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

115 Học Lập trình ứng dụng Android|

Cuối cùng ta có một Manifest tương tự như sau:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="tranduythanh.com.learngooglemap"

android:versionCode="1"

android:versionName="1.0" >

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

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

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

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

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

<uses-feature

android:glEsVersion="0x00020000"

android:required="true" />

<uses-sdk

android:minSdkVersion="14"

android:targetSdkVersion="19" />

<application

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<meta-data

android:name="com.google.android.gms.version"

android:value="@integer/google_play_services_version" />

<meta-data

android:name="com.google.android.maps.v2.API_KEY"

android:value="AIzaSyAWPt-7pVRw-HUBoy9J8_YtB6qPDpp94lM" />

<activity

android:name=".MainActivity"

android:label="@string/app_name" >

<intent-filter>

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

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

</intent-filter>

</activity>

</application>

</manifest>

Page 116: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

116 Học Lập trình ứng dụng Android|

Ở trên bạn thấy API_KEY =AIzaSyAWPt-7pVRw-HUBoy9J8_YtB6qPDpp94lM

Chi tiết lấy API_KEY sẽ được hướng dẫn ở bài sau.

2) Tương tác các đối tượng GoogleMap:

Tạo các đối tượng để thực hiện tương tác giữa ứng dụng với người dùng bao gồm:

GoogleMap:

• Kết nối đến Google Map Service.

• Tải dữ liệu bản đồ theo từng mảng nhỏ (tiles).

• Thể hiện dữ liệu bản đồ trên màn hình thiết bị.

• Thể hiện các điều khiển giao tiếp như thu phóng, la bàn…

• Xử lý các tương tác thu phóng, xoay, góc nhìn…

MapFragment: xây dựng giao diện bản đồ bằng cách xây dựng Fragment.

MapView: xây dựng giao diện bản đồ như một điều khiển và tương tác với Activity.

Truy xuất và sử dụng đối tượng GoogleMap từ thẻ fragment trong XML:

GoogleMap map = ((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();

map.setMapType(GoogleMap.MAP_TYPE_SATELLITE); map.getUiSettings().setZoomControlsEnabled(true); map.setMyLocationEnabled(true);

Page 117: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

117 Học Lập trình ứng dụng Android|

Hoặc:

MapFragment mapFragment = MapFragment.newInstance();

GoogleMap mMap = mapFragment.getMap(); mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE); getFragmentManager().beginTransaction().add(R.id.container,mapFragment).commit();</pre>

Các kiểu giao diện hiển thị bản đồ mà Google Map cung cấp:

• MAP_TYPE_NORMAL

• MAP_TYPE_HYBRID

• MAP_TYPE_NONE

• MAP_TYPE_SATELLITE

• MAP_TYPE_TERRAIN

Các kiểu này ta có thể dùng coding để thay đổi kiểu hiển thị thông qua hàm : setMapType(int)

Một số hình minh họa cách hiển thị:

Page 118: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

118 Học Lập trình ứng dụng Android|

Ta có thể thiết lập các giá trị ban đầu và điều khiển cho GoogleMap bao gồm:

• Góc nhìn (Camera)

• Thu phóng (zoom)

• Chuyển điểm (location)

• Xoay (bearing)

• Góc nghiêng (titl)

• La bàn và điều khiển thu phóng.

• Các điều khiển cử chỉ trên bản đồ.

Ta thiết lập các giá trị ban đầu và điều khiển cho GoogleMap trong layout XML:

Page 119: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

119 Học Lập trình ứng dụng Android|

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="tranduythanh.com.learngooglemap.MainActivity" >

<fragment android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.MapFragment" />

</LinearLayout>

Bạn để ý : class=”com.google.android.gms.maps.MapFragment”

Bạn có thể lấy fragment là root.

Ta cũng có thể thiết lập như sau:

<fragment xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.SupportMapFragment" >

</fragment>

Bạn để ý : class=”com.google.android.gms.maps.SupportMapFragment”

Page 120: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

120 Học Lập trình ứng dụng Android|

Ta có thể thực hiện tùy chỉnh GoogleMap thông qua đối tượng GoogleMapOptions:

MapFragment.newInstance(GoogleMapOptions)

MapView(Context, GoogleMapOptions)

3) Thiết lập Đồ họa trên Google Map:

-Lớp Marker:

Lớp này được xây dựng sẵn cho việc sử dụng định vị tọa độ trên bản đồ, hiển thị thông tin địa điểm

và tương tác với người dùng:

Ví dụ dưới đây Tui lấy Kinh độ và vĩ độ của Trung Tâm Tin Học ĐH Khoa Học tự nhiên (cơ sở 357

Lê Hồng Phong)

LatLng TTTH_KHTN = new LatLng(10.763181, 106.675664); MarkerOptions option=new MarkerOptions(); option.position(TTTH_KHTN); option.title("Trung tâm tin học ĐH KHTN").snippet("This is cool"); option.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)); option.alpha(0.8f); option.rotation(90); Marker maker = map.addMarker(option); maker.showInfoWindow(); map.moveCamera(CameraUpdateFactory.newLatLngZoom(TTTH_KHTN, 15));

Nếu bạn thắc mắc làm sao lấy được kinh độ vĩ độ đúng như vậy thì có thể vào google Maps, tìm

đúng địa điểm và nhấn chuột phải vào địa điểm đó/ chọn What is here:

Page 121: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

121 Học Lập trình ứng dụng Android|

Ta tùy chỉnh Marker bằng cách các thông số:

• Position

• Title

• Snippet

• Draggable

• Visible

• Anchor

• Icon

InfoWindow: được thể hiện phía trên đối tượng Marker thể hiện các thông tin cần thiết về vị trí

đang định vị.

Chỉ một đối tượng InfoWindow hiển thị ở một thời điểm và có thể điều khiển thông qua hai phương

thức:

Page 122: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

122 Học Lập trình ứng dụng Android|

showInfoWindow()

hideInfoWindow()

Để tùy chỉnh InfoWindow trong lớp GoogleMap hỗ trợ giao diện InfoWindowAdapter bao gồm 2

phương thức:

getInfoWindow(Marker)

getInfoContents(Marker)

Ta gọi phương thức setInfoWindowAdapter để thiết lập InfoWindow cho đối tượng GoogleMap

Hình ví dụ mẫu:

Page 123: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

123 Học Lập trình ứng dụng Android|

Ngoài ra Google Maps API cung cấp các giao diện cho phép bắt lại các sự kiện tương với Marker và

InfoWindow:

• OnMarkerClickListener

• OnMarkerDragListener

• OnInfoWindowClickListener

Ta cũng cần chú ý vì load Map có thể mất nhiều thời gian nên cần có ProgressBar để hiển thị cho

người sử dụng không phải thắc mắc, thường ta dùng ProgressDialog để hiển thị trong thời gian chờ

chương trình hoàn tất load Map. Ta có thể xử lý được việc hoàn tất load Map qua sự kiện sau:

Page 124: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

124 Học Lập trình ứng dụng Android|

map.setOnMapLoadedCallback(new OnMapLoadedCallback() {

@Override

public void onMapLoaded() { // TODO Auto-generated method stub

//Xử lý ở đây nầy

Log.i("MAP LOADED", "END"); } });

Như vậy Tui đã giới thiệu xong Google Maps Android API, các bạn có thể tham khảo thêm tại

linkhttps://developers.google.com/maps/documentation/android/

Page 125: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

125 Học Lập trình ứng dụng Android|

Google Maps Android API – phần 2

Trong bài tập này Tui sẽ hướng dẫn các bạn cách đưa Google Map vào ứng dụng Android của mình như

thế nào, có nhiều bước khác nhau để sử dụng, ở đây Tui tạm liệt kê theo thứ tự như sau:

Bước 1:

Kiểm tra hệ thống đã có cài đặt gói Google API và Google Play Service chưa? nếu chưa có thì cần

cài đặt.

Kiểm tra như sau: Mở cửa sổ Android SDK Manager lên:

Page 126: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

126 Học Lập trình ứng dụng Android|

Bạn quan sát hình trên xem có Google APIs tương ứng với các version hay chưa (tùy bạn cài đặt,

không nhất thiết phải giống như hình Tui chụp). Tiếp theo kéo xuống mục Extras để kiểm tra Google

Play Service:

Page 127: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

127 Học Lập trình ứng dụng Android|

Nếu nó chưa được cài đặt thì bạn phải cài đặt cho đầy đủ.

Khi cài đặt thành công thì bạn có thể tìm thấy nó ở đây

“..\sdk\extras\google\google_play_services\libproject\google-play-services_lib”:

Page 128: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

128 Học Lập trình ứng dụng Android|

Bước 2:

– Tạo máy Ảo có khả năng chạy được Google Map:

Page 129: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

129 Học Lập trình ứng dụng Android|

Như bạn thấy máy Tui có Google APIs từ 17->21, bạn tạo máy ảo với một trong nhóm này để nó có

thể chạy được với Google Map. Chú ý là bạn không cần thiết phải lấy bản 21 nhé, ở đây Tui lỡ tải

về rồi nên chụp cho nó màu mè thôi. Bạn chạy với bản 19 cũng rất Ok rồi. Bản 21 phải yêu cầu bật

tính năng ảo hóa nên chưa chắc máy của bạn chạy được.

Page 130: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

130 Học Lập trình ứng dụng Android|

Bước 3:

Import thư viện google-play-services_lib ở Bước 1 vào Eclipse. Bước này bạn nên copy đường

dẫn rồi dán vào cửa sổ import cho lẹ nhé:

Sau đó Import Project này vào Elipse như sau:

Page 131: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

131 Học Lập trình ứng dụng Android|

Vào menu File/ Chọn Import:

Màn hình Import Project hiển thị ra như bên dưới, ta chọn Android/Existing Android Code into

Workspace:

Page 132: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

132 Học Lập trình ứng dụng Android|

Bấm next để tiếp tục:

Page 133: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

133 Học Lập trình ứng dụng Android|

Root Directory: Bạn dán đường dẫn đã copy lúc nãy vào đây rồi nhấn phím Enter nó sẽ hiển thị ra

Google-play-service_lib ở trong mục Projects.

Copy projects into workspace: Bạn nhớ tick vào đây.

Sau đó nhấn nút Finish để kết thúc quá trình Import:

Page 134: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

134 Học Lập trình ứng dụng Android|

Bước 4:

Tạo Project Android tên “LearnGoogleMap” sử dụng Google Map để tham chiếu tới Google Play

Service tạo ở bước 3.

Sau khi tạo Project LearnGoogleMap xong thì nhấn chuột phải vào nó chọn Properties:

Page 135: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

135 Học Lập trình ứng dụng Android|

Màn Properties hiển thị ra ta chọn Android/ chọn nút Add trong mục Library:

Page 136: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

136 Học Lập trình ứng dụng Android|

Khi bấm nút Add–> màn hình sau xuất hiện, ta chọn google play service:

Page 137: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

137 Học Lập trình ứng dụng Android|

Bấm OK để đồng ý tham chiếu, ta xem kết quả:

Page 138: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

138 Học Lập trình ứng dụng Android|

Bước 5:

Cấu hình để sử dụng Google Map trong ứng dụng LearnGoogleMap:

– Ta cần tìm chuỗi SHA1 để tạo API KEY sử dụng Google map trước, để có SHA1 ta làm như sau:

Mở màn hình Command Line lên, copy và gõ lệnh sau (không sửa gì nhé):

Page 139: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

139 Học Lập trình ứng dụng Android|

keytool -list -v -keystore “%USERPROFILE%\.android\debug.keystore” -alias androiddebugkey -

storepass android -keypass android

Từ màn hình Command line, ta dán lệnh trên vào:

Nhấn Enter và có kết quả SHA1 như sau:

Ta sao chép SHA1 được cung cấp ở trên.

Ngoài ra Eclipse đã hỗ trợ cho chúng ta cách lấy SHA1 vô cùng dễ òm như sau:

Page 140: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

140 Học Lập trình ứng dụng Android|

Vào menu Windows/Chọn Preference:

Bạn copy luôn chuỗi SHA1 đó, chú ý là chuỗi này tương ứng với mỗi cấu hình máy là khác nhau, khi

đưa lên Google project cùng với Package nó sẽ tạo ra API KEY khác nhau và duy nhất.

Tiếp theo bạn vào https://code.google.com/apis/console để lấy API KEY dựa theo SHA1 được cung

cấp ở trên.

Bạn chú ý là API KEY được tạo ra dựa trên sự kết hợp giữa SHA1 và package mà bạn tạo ra trong

Android. ở Project trên Package tui như sau:

Page 141: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

141 Học Lập trình ứng dụng Android|

“tranduythanh.com.learngooglemap” nó sẽ kết hợp với SHA1 để tạo ra API KEY. Như vậy nếu bạn

đặt tên theo package nào thì phải theo package đó nha.

Kích hoạt Google MAP Android API V2 lên (tùy vào version khác nhau mà Google có thể đổi giao

diện khác chút xíu, miễn sao bạn nhìn thấy nó là OK):

– Bạn vào mục API, kéo xuống tìm Google Máp Android API v2 để bật ON nó lên:

Page 142: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

142 Học Lập trình ứng dụng Android|

Bật xong sẽ thấy:

Sau đó vào mục Credentials/ chọn Create New Key:

Page 143: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

143 Học Lập trình ứng dụng Android|

Khi bấm vào Create New Key màn hình sau xuất hiện:

Ở màn hình trên bạn chọn Android Key, màn hình tiếp theo xuất hiện:

Page 144: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

144 Học Lập trình ứng dụng Android|

Sau khi bấm Create, ta có kết quả sau:

– Vậy là ta đã có API KEY.

Page 145: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

145 Học Lập trình ứng dụng Android|

– Ta tiến hành sửa AndroidManifest như sau:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="tranduythanh.com.learngooglemap"

android:versionCode="1"

android:versionName="1.0" >

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

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

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"

/>

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"

/>

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

<uses-feature

android:glEsVersion="0x00020000"

android:required="true" />

<uses-sdk

android:minSdkVersion="14"

android:targetSdkVersion="19" />

<application

Page 146: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

146 Học Lập trình ứng dụng Android|

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<meta-data

android:name="com.google.android.gms.version"

android:value="@integer/google_play_services_version" />

<meta-data

android:name="com.google.android.maps.v2.API_KEY"

android:value="AIzaSyAs7FEF1RxuoSat_oHITBirDKagx2nQKDM" />

<activity

android:name=".MainActivity"

android:label="@string/app_name" >

<intent-filter>

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

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

</intent-filter>

</activity>

</application>

</manifest>

Tiếp theo tiến hành chỉnh sửa activity_main.xml:

Page 147: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

147 Học Lập trình ứng dụng Android|

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/LinearLayout1"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context="tranduythanh.com.learngooglemap.MainActivity" >

<fragment

android:id="@+id/map"

android:layout_width="match_parent"

android:layout_height="match_parent"

class="com.google.android.gms.maps.MapFragment"

/>

</LinearLayout>

Coding java Ta không sửa gì hết nhá (Tức là cứ để mặc định, chỉ sửa lại mỗi Layout XML mà thôi.

Sau khi sửa xong ta tiến hành chạy Ứng Dụng, bạn sẽ thấy Google Map hiển thị trong ứng dụng. Dĩ

nhiên là chỉ mới hiển thị cho ta ngó đỡ ghiền chứ chưa làm được gì cả:

Page 148: Bài 1: Thiết lập môi trường lập trình và tạo ứng dụng đầu tiên · Và tất nhiên nếu bạn không muốn phải lập trình trên phần mềm soạn thảo

[email protected]

148 Học Lập trình ứng dụng Android|

Như vậy đến đây các bạn đã biết cách đưa Google Map ra ứng dụng, bạn cần hiểu rõ từng bước để

tránh sai sót. Phải nhớ bước lấy SHA1, API KEY, bước cấu hình Manifest và layout có sử dụng

class=”com.google.android.gms.maps.MapFragment”

Bài tiếp theo Tui sẽ hướng dẫn các bạn cách tương tác với Google Map

Bạn có thể tải source code mẫu ở đây (dĩ nhiên bạn không thể nào chạy trên máy của bạn được) vì

nó lệ thuộc vào API KEY, mà API KEY lại lệ thuộc vào SHA1 và package…. do đó khi bạn tải về thì

phải làm lại các bước để lấy đúng API KEY theo cấu hình trên máy của

bạn: http://download939.mediafire.com/aykl9wqptuwg/9b9fz5c36yw025h/LearnGoogleMap.rar