PHẦN 1. MỞ ĐẦU 1. Tên đề tài Xây dựng ứng dụng quản lý công việc cá nhân. 2. Lý do chọn đề tài Bạn đã bao giờ thử tính xem mình đã phí phạm bao nhiêu thời gian trong một ngày, một tuần, thậm chí trong cả cuộc đời mình chưa. Hay có bao giờ bạn ước một ngày có 48 giờ để làm tốt công việc của mình. Có rất nhiều người giống bạn, chỉ lo lo rượt đuổi thời gian mà do không biết tận dụng, sắp xếp công việc và cuộc sống thế nào cho phù hợp nhất Mỗi chúng ta đều hiểu được việc lên kế hoạch làm việc cho bản thân rất quan trọng để bạn quản lý thời gian hiệu quả, vì những mục tiêu giúp bạn định hướng rõ ràng cho công việc của chính mình. Nếu bạn không có một kế hoạch cụ thể thì sẽ dễ lặp đi lặp lại các thao tác để thực hiện một công việc nhiều điều hay sa đà vào các công việc không có mục đích, từ đó làm mất thời gian quý giá. Làm việc không có kế hoạch còn là lí do khiến bạn trì hoãn thực hiện các công việc quan trọng. Chính vì vậy, việc xây dựng một kế hoạch làm việc tốt là điều quan trọng giúp bạn quản lý hiệu quả thời gian của mình. Xuất phát từ những vấn đề trên nhóm 14 trong môn phát triên ứng dụng trên thiết bị di động đã cùng nhau “Xây dựng ứng dụng quản lý công việc cá nhân”. 3. Mục đích Đề tài “Xây dựng ứng dụng quản lý công việc cá nhân.” nhằm tìm hiểu về phương thức xây dựng một ứng dụng trên thiết bị di động, từ đó nắm được một số kỹ năng như thiết kế, ngôn ngữ và sử dụng ứng dụng có liên quan tới ứng dụng android. 4. Bố cục Nội dung chính chia làm 3 chương: Chương 1. Tổng quan android. Chương 2. Thiết kế giao diện cho ứng dụng Android Chương 3. Khảo sát và phân tích thiết kế hệ thống ứng dụng. Chương 4. Cài đặt công cụ và xây dựng ứng dụng. 5. Phương pháp tiếp cận Thu thập thống kê phân tích: Lý thuyết trong tài liệu phát triển ứng dụng trên thiết bị di động, thông tin trên Internet Phân tích mẫu: tìm hiểu ứng dụng và công nghệ phát triển Thực nghiệm: xây dụng ứng dụng quản lý công việc từ đó nắm được một số kỹ năng trong thiết kế ứng dụng android.
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN PHÁT TRIỂN ỨNG DỤNG TRÊN
THIẾT BỊ DI ĐỘNG
Đề tài: XÂY DỰNG ỨNG DỤNG QUẢN LÝ CÔNG VIỆC CÁ NHÂN Giảng viên hướng dẫn : Th.s Nguyễn Thái Cường
Lớp : KTPM4 – K10 Nhóm : 14
Sinh viên thực hiện : Phạm Minh Hồng-1041360303
Nguyễn Văn Khải-1941360319Bùi Văn Long-1041360565
Hà Nội, 2019
Trang 2LỜI CẢM ƠN
Trong suốt quá trình học tập và làm bài tập lớn, nhóm 14 đã nhận được sựhướng dẫn, giúp đỡ nhiệt tình của quý thầy cô trong khoa Công nghệ thông tintrường Đại học Công nghiệp Hà Nội và các bạn trong lớp để hoàn thành đề tài tìmhiểu của nhóm Với lòng kính trọng và sự biết ơn sâu sắc, nhóm em xin được bày
tỏ lời cảm ơn chân thành tới thầy Nguyễn Thái Cường - người thầy đã hết lònggiúp đỡ, hướng dẫn và tạo mọi điều kiện thuận lợi cho nhóm trong suốt quá trìnhhọc tập và hoàn thành bài tập lớn của nhóm
Những đóng góp của mọi người là kinh nghiệm quý báu giúp cho các thànhviên trong nhóm có những dự tính sau này cho việc tiếp tục phát triển ứng dụng vàxin việc ở các công ty
Chúng em xin chân thành cảm ơn !
Sinh viên nhóm 14
Trang 3MỤC LỤC
LỜI CẢM ƠN 2
MỤC LỤC 3
MỤC LỤC HÌNH 5
PHẦN 1 MỞ ĐẦU 6
1 Tên đề tài 6
2 Lý do chọn đề tài 6
3 Mục đích 6
4 Bố cục 6
5 Phương pháp tiếp cận 7
PHẦN 2 NỘI DUNG 8
CHƯƠNG 1: TỔNG QUAN VỀ ANDROID 8
1.1 Giới thiệu hệ điều hành Android 8
1.2 Lược sử về Android 8
1.3 Nền tảng Android 10
1.4 Vòng đời của ứng dụng Android: 11
1.5 Các thành phần của ứng dụng android 12
CHƯƠNG 2: THIẾT KẾ GIAO DIỆN CHO ỨNG DỤNG ANDROID 13
2.1 Một số lớp hỗ trợ thiết kế giao diện cho ứng dụng Android 13
2.2 Android Widget Toolbox 13
2.3 Các kiểu Layout: 14
2.4 Tạo các View: 15
2.5 Tạo giao diện Activity với các View 16
2.6 Menu 16
CHƯƠNG 3 KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG ỨNG DỤNG 20
3.1 Mô tả hệ thống cơ sở 20
Trang 43.2 Đánh giá hệ thống cơ sở cũ 20
3.3 Yêu câu bài toán 20
3.4 Phân tích thiết kế hệ thống chức năng 20
3.4.1 Hoạt động của hệ thống 21
3.4.2 Các chức năng của hệ thống 21
3.4.3 Phân tích chức năng 22
3.4.4 Sơ đồ phân cấp chức năng 22
3.4.5 Phân tích chức năng chính 22
CHƯƠNG 4 CÀI ĐẶT CÔNG CỤ VÀ XÂY DỰNG ỨNG DỤNG 24
4.1 Giới thiệu công cụ 24
4.2 Giới thiệu sơ lược về ngôn ngữ sử dụng 24
4.3 Hướng dẫn cài đặt 25
4.4 Thực hiện bài toán 31
4.4.1 Phân công công việc 31
4.4.2 demo ứng dụng đã hoàn thiện 32
PHẦN III: KẾT LUẬN 35
1 Kết quả đạt được: 35
2 Hạn chế của đề tài 35
3 Hướng phát triển 35
PHẦN IV: TÀI LIỆU THAM KHẢO 36
Trang 5MỤC LỤC HÌNH
Hình 1.1 Lịch sử các phiện bản của hệ điều hành Android 10
Hình 1.2 cấu trúc android 11
Hình 1.3 Thành phần của ứng dụng Android 12
Hình 2.1 Quan hệ giữa các thành phần trên 13
Hình 2.2 Quan hệ giữa các thành phần trên 15
Hình 2.3 Icon menu 17
Hình 2.4 Expanded menu 17
Hình 2.5 Submenu 18
Hình 4.1 Biểu tượng ứng dụng android studio 24
Hình 4.2 Link download Android Studio 25
Hình 4.3 Cài đặt môi trường java 26
Hình 4.4 Cài đặt ứng dụng Android studio 26
Hình 4.5 Cài đặt ứng dụng Android studio 27
Hình 4.6 Cài đặt ứng dụng Android studio 28
Hình 4.7 Cài đặt ứng dụng Android 28
Hình 4 8 Tùy chọn ứng dụng 29
Hình 4.9 Tùy chọn ứng dụng 29
Hình 4.10 Tùy chọn cài đặt máy ảo 30
Hình 4.11 Cài đặt lượng Ram cấp cho ứng dụng 30
Hình 4.12 Tạo hoặc khởi động project 31
Hình 4.13 Màn hình đăng nhập 32
Hình 4.14 Màn hình đăng ký 32
Hình 4.15 Màn hình chính khi đăng nhập thành công 33
Hình 4.16 Xem thông tin chi tiết của công việc 33
Hình 4.17 Chọn để có thể thay đổi công việc đã lưu 34
Hình 4.18 Màn hình thêm công việc 34
Trang 6PHẦN 1 MỞ ĐẦU
1 Tên đ tài ề tài
Xây dựng ứng dụng quản lý công việc cá nhân.
2 Lý do ch n đ tài ọn đề tài ề tài
Bạn đã bao giờ thử tính xem mình đã phí phạm bao nhiêu thời gian trongmột ngày, một tuần, thậm chí trong cả cuộc đời mình chưa Hay có bao giờ bạnước một ngày có 48 giờ để làm tốt công việc của mình Có rất nhiều người giốngbạn, chỉ lo lo rượt đuổi thời gian mà do không biết tận dụng, sắp xếp công việc vàcuộc sống thế nào cho phù hợp nhất
Mỗi chúng ta đều hiểu được việc lên kế hoạch làm việc cho bản thân rấtquan trọng để bạn quản lý thời gian hiệu quả, vì những mục tiêu giúp bạn địnhhướng rõ ràng cho công việc của chính mình Nếu bạn không có một kế hoạch cụthể thì sẽ dễ lặp đi lặp lại các thao tác để thực hiện một công việc nhiều điều hay
sa đà vào các công việc không có mục đích, từ đó làm mất thời gian quý giá Làmviệc không có kế hoạch còn là lí do khiến bạn trì hoãn thực hiện các công việcquan trọng Chính vì vậy, việc xây dựng một kế hoạch làm việc tốt là điều quantrọng giúp bạn quản lý hiệu quả thời gian của mình
Xuất phát từ những vấn đề trên nhóm 14 trong môn phát triên ứng dụng trênthiết bị di động đã cùng nhau “Xây dựng ứng dụng quản lý công việc cá nhân”
3 M c đích ục đích
Đề tài “Xây dựng ứng dụng quản lý công việc cá nhân.” nhằm tìm hiểu vềphương thức xây dựng một ứng dụng trên thiết bị di động, từ đó nắm được một sốkỹ năng như thiết kế, ngôn ngữ và sử dụng ứng dụng có liên quan tới ứng dụngandroid
4 B c c ố cục ục đích
Nội dung chính chia làm 3 chương:
Chương 1 Tổng quan android
Chương 2 Thiết kế giao diện cho ứng dụng AndroidChương 3 Khảo sát và phân tích thiết kế hệ thống ứng dụng.Chương 4 Cài đặt công cụ và xây dựng ứng dụng
Trang 75 Ph ương pháp tiếp cận ng pháp ti p c n ếp cận ận
Thu thập thống kê phân tích: Lý thuyết trong tài liệu phát triển ứng dụngtrên thiết bị di động, thông tin trên Internet
Phân tích mẫu: tìm hiểu ứng dụng và công nghệ phát triển
Thực nghiệm: xây dụng ứng dụng quản lý công việc từ đó nắm được một sốkỹ năng trong thiết kế ứng dụng android
Trang 8PHẦN 2 NỘI DUNG CHƯƠNG 1: TỔNG QUAN VỀ ANDROID
1.1 Giới thiệu hệ điều hành Android
Android là một hệ điều hành chạy trên điện thoại di động được phát triển từnhân Linux Được phát triển vào năm 2005 với một dự án cùng tên “Android”.Trong một phần chiến lược của mình để lấn sâu vào lĩnh vực di động Google đãmua về toàn bộ quá trình phát triển cũng như đội phát triển của Android
Google phát hành Android dưới dạng mã nguồn mở và miễn phí, do đó bất cứ
ai muốn sử dụng đều có thể tải về mã nguồn Android đầy đủ Hơn nữa các nhàcung cấp (thường là những nhà phát triển phần cứng) có thể phát triển thêm phầnmở rộng và tùy biến cho Android để tạo những sản phẩm riêng biệt của họ so vớisản phẩm của những công ty khác Điều này làm cho mô hình phát triển Androidrất hấp dẫn và do đó khơi dậy sự quan tâm của nhiều nhà cung cấp Điều này rấtphù hợp với các công ty bị ảnh hưởng bởi hiện tượng này như là Iphone của Apple,một sản phẩm cực kì thành công trong công cuộc cách mạng hóa ngành côngnghiệp Smartphone Các công ty như SamSung, Motorola, SonyEricsson và một sốnhững nhà sản xuất đã tìm được một con đường mới để làm sống dậy sản phẩmcủa họ Những nhà sản xuất này coi Android như một giải pháp – họ sẽ tiếp tụcthiết kế phần cứng của riêng mình và sử dụng Android như một hệ điều hànhchính[9][10]
Ưu điểm chính của việc áp dụng Android là cung cấp một cách tiếp cận thốngnhất để phát triển ứng dụng Các nhà phát triển chỉ cần phát triển cho Android vàcác ứng dụng của họ có thể chạy trên nhiều thiết bị khác nhau, miễn là các thiết bịđược hỗ trợ bằng cách sử dụng Android Trong thế giới smartphone ứng dụng làmột phần quan trọng nhất của chuỗi thành công Do đó các nhà sản xuất thiết bị coiAndroid như là hy vọng tốt nhất để thách thức sự tấn công của Iphone
1.2 Lược sử về Android
Android được phát hành phiên bản đầu tiên 11/11/2007, là một môi trường hệđiều hành hoàn chỉnh dựa trên hệ điều hành nhân Linux V2.6 Lúc đầu, đích triểnkhai đối với Android là lĩnh vực điện thoại di động, gồm các loại điện thoại thôngminh và các loại thiết bị điện thoại kiểu gập chi phí thấp Tuy nhiên, phạm vi đầy
đủ các dịch vụ điện toán của Android và sự hỗ trợ chức năng phong phú của nó cótiềm năng mở rộng ra ngoài thị trường điện thoại di động Android còn có thể hữuích đối với các nền tảng và ứng dụng khác[2]
Nền Android là sản phẩm của Open Handset Alliance (Liên minh thiết bị cầmtay mở), một tập đoàn các tổ chức cùng hợp tác với nhau để xây dựng nên một loạiđiện thoại di động tốt hơn Tập đoàn do Google đứng đầu này gồm các nhà vận
Trang 9hành (điện thoại) di động, các nhà sản xuất thiết bị cầm tay, sản xuất linh kiện, cácnhà cung cấp nền và giải pháp phần mềm và các công ty tiếp thị Từ một quanđiểm phát triển phần mềm, Android trở thành trung tâm của thế giới mã nguồn mở
và rất có tiềm năng phát triển
Thiết bị cầm tay có khả năng Android đầu tiên trên thị trường là thiết bị G1 doHTC sản xuất và được bán trên T-Mobile Nó trở nên sẵn có sau gần một năm đồnđại, khi mà các công cụ phát triển phần mềm sẵn có duy nhất chỉ là một số bảnphát hành Bộ công cụ phát triển phần mềm (SDK) được cải tiến dần từng bước.Khi ngày phát hành G1 gần đến, nhóm Android đã phát hành SDK V1.0 và cácứng dụng bắt đầu vượt lên nhằm hướng tới nền tảng mới này
Để kích thích đổi mới và phát triển các ứng dụng của Android, Google đã tàitrợ hai vòng cuộc thi “Các thách thức nhà phát triển Android”, và hàng triệu đô lađã được đổ vào các ứng dụng dự thi hàng đầu Vài tháng sau G1, Android Marketđược phát hành, cho phép người sử dụng duyệt và tải về các ứng dụng trực tiếp vàođiện thoại của họ Trong vòng 18 tháng, một nền di động mới đã chính thức có mặttrên thị trường và sẽ là đối thủ cạnh tranh nặng ký của các nền di động phổ biếntrước đó như Symbian hay Window Mobile
Android cung cấp khá đầy đủ các công cụ cơ bản và được thiết kế sao cho cácnhà phát triển có thể tận dụng tối đa lợi thế của thiết bị cầm tay để xây dựng nêncác ứng dụng thực sự thuyết phục Họ có thể tạo một ứng dụng có thể gọi thực hiệncác chức năng lõi trong điện thoại như thực hiện cuộc gọi, gửi tin nhắn SMS, dùngcamera… hay chia sẻ thông tin cá nhân lên trang web chẳn hạn như thông tin liênlạc, vị trí địa lí, lịch biểu… Các nhà phát triển còn có thể làm bất cứ việc gì trênthiết bị Android bởi vì hệ thống Android giao tiếp thông qua các Intents – nó đơngiản là một chuỗi mô tả một hành động nào đó - ví dụ:
“android.provider.Telephony.SMS_RECEIVED” Android còn cung cấp sẵn cácdịch vụ định vị (và đây là một thế mạnh của Google) cùng với một tập các ứngdụng về “Map” với các tính năng rất ấn tượng như dò đường, tính khoảng cách địađiểm, tìm bạn… Ngoài ra còn có một số tính năng nổi bật khác như Animation vàđồng thời cũng hỗ trợ media-playback Android đã dần hoàn thiện qua các phiênbản, mà phiên bản mới nhất hiện nay là Android 4.0
Trang 10Hình 1.1 Lịch sử các phiện bản của hệ điều hành Android
1.3 Nền tảng Android
Với khả năng rộng rãi của Android, sẽ rất dễ dàng nhầm lẫn nó với một hệđiều hành máy tính để bàn Android là một môi trường phân tầng, xây dựng trênnền của hệ điều hành nhân Linux, và nó bao hàm nhiều chức năng phong phú Hệthống giao diện người sử dụng gồm có:
Trang 11Hình 1.2 cấu trúc android
1.4 Vòng đời của ứng dụng Android:
Không giống như các ứng dụng trên các nền tảng khác, các ứng dụng Androidkhông có một điều khiển đến vòng đời của chúng Thay vào đó, các thành phầnứng dụng phải lắng nghe việc thay đổi trạng thái bên trong của ứng dụng đó và tácđộng trở lại một cách hợp lý Mỗi một ứng dụng Android ở trong chính tiến trìnhcủa nó, chạy một thể hiện riêng biệt của Dalvik.Việc quản lý bộ nhớ và tiến trìnhcủa mỗi ứng dụng Android được điều khiển một cách riêng trong lúc runtime.Android quản lý tài nguyên một cách chặt chẽ, nó sẽ làm bất cứ việc gì đểđảm bảo cho thiết bị duy trì đáp ứng Điều này có nghĩa là các tiến trình sẽ bị hủy
đi mà không có một cảnh báo nào nếu cần giải phóng tài nguyên cho các ứng dụngcó độ ưu tiên cao
Trang 121.5 Các thành phần của ứng dụng android
Hình 1.3 Thành phần của ứng dụng Android
Activities:
- Một activity trong android đại diện cho một màn hình duy nhất mà người
dùng có thể tương tác
- Một ứng dụng có thể có nhiều activities và mỗi activity hoạt động độc
lập, nhưng có thể được liên kết với nhau và mỗi activity được tạo phải được kê khai trong manifest của app
- Mỗi activity trong android là lớp con của Activity được xác định trong
SDK Android
- Ví dụ: public MainActivity extend Activiy
Service:
- Service là quá trình chạy nền lâu dài mà không cần bất kỳ sự tương tác
nào của người dùng
- Ví dụ: một service có thể phát nhạc khi ở chế độ nền trong khi người
dùng đang dùng ứng dụng khác, hoặc có thể tìm nạp dữ liệu qua mạng
mà không chặn tương tác của người dùng với mỗi hoạt động
- Ví dụ: public Service extend Service.
Broadcast Receivers:
- Xử lý giao tiếp giữa hệ điều hành android và các ứng dụng.
Content Providers: Được sử dụng để chia sẻ dữ liệu giữa các ứng dụng trong
android, dữ liệu không thể được chia sẻ trực tiếp giữa hai ứng dụng
Trang 13CHƯƠNG 2: THIẾT KẾ GIAO DIỆN CHO ỨNG DỤNG ANDROID 2.1 Một số lớp hỗ trợ thiết kế giao diện cho ứng dụng Android
Android cung cấp một số công cụ thiết kế giao diện:
Views: là lớp UI cơ bản cho các control giao diện Tất cả các control giao diện người dùng, các lớp layout đều được dẫn xuất từ lớp Views.
ViewGroups: được mở rộng từ lớp View và có thể chứa nhiều Views ViewGroups cũng được kế thừa để cung cấp các lớp quản lý bố cục như LinearLayout ViewGroup được dùng để xây dựng nên các component có thể dùng lại (widget) hoặc để quản lý bố cục cho các control.
Activity: dùng để hiển thị giao diện người dùng Lớp này do người phát triển ứng dụng viết.
Hình 2.4 Quan hệ giữa các thành phần trên
2.2 Android Widget Toolbox
Android cung cấp một bộ công cụ các View chuẩn để tạo các giao diện người dùng đơn giản,giúp đơn giản hóa việc phát triển và tạo sự đồng nhất giữa các ứng dụng.
Các control thông dụng:
• TextView: là một label chỉ có tác dụng hiển thị văn bản, nó hỗ trợ hiển thị nhiều dòng, định dạng chuỗi.
• EditText: là một vùng nhập văn bản có thể chỉnh sửa, hỗ trợ nhập nhiều dòng.
• ListView: tạo và quản lý một nhóm các View để hiển thị một danh sách các phần tử Một ListView chuẩn dùng để hiển thị chuỗi giá trị của một mảng các TextView.
• Spinner: là một control kết hợp, hiển thị một TextView và một ListView kết hợp dùng để chọn một item từ danh sách Nó được tạo thành từ một TextView chứa giá trị hiện tại đang được chọn kết hợp với một nút mà khi nhấn vào sẽ đưa ra một danh sách lựa chọn.
Trang 14LayoutManager (thường gọi là layout) là mở rộng của lớp ViewGroup, được thiết
kế để điều chỉnh vị trí của các control trên màn hình ứng dụng Layout có thể lồng nhau
để tạo nên các giao diện phức tạp Android có một số các layout đơn giản giúp xây dựng
UI Để tạo nên một bố cục hợp lý thì nên kết hợp các layout với nhau.
Các lớp layout cơ bản:
• FrameLayout: là layout đơn giản nhất trong Layout Manager, FrameLayout
đặt mỗi View con vào góc trái trên của màn hình Việc thêm nhiều control sẽ chồng một cái mới lên trên cái trước đó.
• LinearLayout: thêm mỗi View theo một đường thẳng, theo chiều dọc hoặc
ngang Một layout theo chiều dọc sẽ có một control trên một dòng, layout theo chiều ngang chỉ có một dòng cho nhiều View Nó cho phép chỉ định giá trị “weight” cho mỗi View con để điều chỉnh kích thước bên trong không gian cho phép.
• RelativeLayout: dùng để định vị trí cho các View cân xứng với các control
khác cũng như với đường biên của màn hình.
• TableLayout: giúp bố trí các View theo một lưới có các dòng và các cột Các
cột có thể được thiết lập để co lại hoặc giản ra.
• AbsoluteLayout: trong layout này, vị trí mỗi View sẽ là tọa độ tuyệt đối, đảm
bảo bố cục chính xác cho các thành phần Do đó, không thể có được sự linh hoạt đối với các màn hình có kích thước khác nhau.
Sử dụng Layout:
Để sử dụng layout người ta thường dùng phương pháp là sử dụng resource bên ngoài từ file XML Một layout XML phải chứa một nút gốc.Nút gốc này có thể chứa các layout và các View lồng nhau để xây dựng nên các giao diện phức tạp.
Trang 15Hình 2.5 Quan hệ giữa các thành phần trên
2.4 Tạo các View:
2.4.1 Chỉnh sửa các View có sẵn
Chỉnh sửa hoặc kế thừa một control sẳn có nếu nó cung cấp các chức năng cần thiết,
bằng cách ghi đè các handler và onDraw của nó Để định nghĩa lại giao diện cũng như
các ứng xử của control mới tạo, cần phải ghi đè và thừa kế các điều khiển sự kiện (event handler) kết hợp với các hành vi muốn thay đổi.
2.4.2 Tạo các điều khiển ghép (compound control)
Compound control là các widget có thể tái sử dụng, nó chứa nhiều control được bố
trí và có liên hệ với nhau, nó được tạo từ nhiều control cơ bản.Ví dụ như tạo nên một
dropdown combo box bằng cách kết hợp một TextView và một Button mà khi được nhấn
sẽ hiển thị một ListView.
Khi tạo một compound control cần định nghĩa layout, hình thức và cách thức tác
động lẫn nhau giữa các View mà nó chứa Compound control được tạo thành từ việc dẫn
xuất từ lớp ViewGroup.
Để tạo một compound control mới, chọn một lớp layout phù hợp nhất để xác định vị
trí cho các control, và dẫn xuất từ nó:
public class MyCompoundView extends LinearLayout {
public MyCompoundView(Context context) { super(context);
} public MyCompoundView(Context context, AttributeSet attrs) { super(context, attrs);
Trang 16} }
Cách được ưa chuộng hơn để thiết kế giao diện cho một compound control là sử dụng layout resource.
Để dùng được layout này cho widget mới cần phải định nghĩa lại contructor của nó
sử dụng phương thức inflate từ dịch vụ LayoutInflate Phương thức inflate nhận tham số
là layout resource và trả về một View
Một khi đã xây dựng được giao diện cho control, điều tiếp theo là định nghĩa điều khiển sự kiện cho mỗi control con trong nó
2.4.3 Tạo các Control tùy chỉnh
Người phát triển có thể tạo ra các control theo ý của mình để tạo được một giao diện mang tính duy nhất phù hợp với yêu cầu của người dùng Các control mới cần phải được thừa kế từ lớp View hoặc SurfaceView.
Lớp View cung cấp một đối tượng Canvas và một số phương thức vẽ cũng như các lớp Paint, để tạo một giao diện trực quan.Người thiết kế có thể định nghĩa lại các sự kiện người dùng như cảm ứng trên màn hình, nhấn phím để tạo nên sự tương tác.Trong những trường hợp mà không đòi hỏi việc vẽ lại cũng như đồ họa 3D thì lớp cơ sở View có giải pháp hiệu quả.
Trong khi đó, lớp SurfaceView cung cấp một đối tượng canvas hỗ trợ việc vẽ từ một luồng xử lý nền và sử dụng openGL cho đồ họa 3D Đây là một lựa chọn tuyệt với cho
các điều khiển đòi hỏi đồ họa cao, cần phải cập nhật liên tục hoặc hiển thị các đồ họa phức tạp, như game 3D.
2.5 Tạo giao diện Activity với các View
Một Activity khi chưa thiết kế sẽ khởi động với một màn hình rỗng Để thiết lập
giao diện cho màn hình rỗng này cần gọi phường thức setContentView khi everride lại
phương thức onCreate Phương thức setContentView có thể nhận một tham số là resource
ID hoặc một thể hiện của View Do đó, có thể định nghĩa giao diện ứng dụng bằng code hoặc tham chiếu đến resource (layout).
Nếu dùng layout resource thì sẽ tách riêng việc thiết kế giao diện và phần code xử
lý, cung cấp một khả năng thay đổi linh hoạt giao diện mà không thay đổi code bên trong.
2.6 Menu
2.6.1 Menu trong Android
Menu đưa ra một giải pháp để tăng tính tiện dụng của ứng dụng mà không chiếm dụng không gian trên màn hình Mỗi một Activity có riêng cho nó một menu, được hiển thị khi người dùng nhấn nút Menu.
Android cũng hỗ trợ menu ngữ cảnh, nó được gán vào bất kỳ View nào bên trong một Activity.Một menu ngữ cảnh được hiển thị khi người dùng nhấn nút D-pad,
Trang 17trackball, hoặc nhấn vào màn hình cảm ứng khoảng 3 giây.menu ngữ cảnh hỗ trợ submenu, checkbox, radio button, shortcut key, và icon.
Các loại menu trong android:
• Icon Menu: được kết với menu, xuất hiện ở phần dưới của màn hình thiết bị
khi nút Menu được nhấn Nó hiển thị icon và text cho các menu item hoặc các submenu Icon menu hỗ trợ tạo tối đa 6 menu item, và các menu item này không thể hiển thị checkbox, radio button, hay shortcut key.
Hình 2.6 Icon menu
• Expanded Menu: hiển thị khi người dùng chọn More trong menu icon.
Expand Menu hiển thị một danh sách có thể cuộn được các menu item, và các menu item này không thể chứa các icon mà chỉ có thể chứa text, shortcut key và checkbox/ radio button.
Hình 2.7 Expanded menu
• Submenu: mỗi submenu hiển thị bằng một cửa sổ, tên của submenu được hiển
thị ở thanh header và mỗi Menu item được hiển thị với đầy đủ text, checkbox, shortcut key và không thể hiển thị icon cho các item Android không hỗ trợ các submenu lồng nhau, vì không thể thêm một submenu vào một submenu.
Trang 18Hình 2.8 Submenu
2.6.2 Các kiểu Menu Item
Android hỗ trợ hầu hết các kiểu menu item truyền thống, bao gồm icon, shortcut, checkbox, radio button:
• Checkbox và Radio button group: Để thiết lập một menu item là checkbox sử
dụng phương thức setCheckable, để thiết lập trạng thái của checkbox dùngsetChecked Một radio button group là một nhóm các radio button và chỉ có một trong số chúng được chọn tại một thời điểm Để tạo một radio button group, gán cùng ID nhóm cho mỗi item, sau đó gọi phương thức Menu.setGroupCheckable, truyền vào ID nhóm, và thiết lập
giá trị cho các tham số khác là True.
• Shorcut Key: để chỉ định một keypad shortcut cho một Menu Item sử dụng
phương thức setShortcut Phương thức này yêu cầu truyền vào 2 tham số, một là phím số
• Menu Item Click Listener: khi một menu được chọn sẽ có một xử lý điều
khiển Đó là phương thức onOptionsItemSelected.
menuItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem _menuItem) { [ thực hiện xử lý ]