1. Trang chủ
  2. » Luận Văn - Báo Cáo

TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID TẠI CÔNG TY TNHH KIẾN VIỆT

75 447 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 75
Dung lượng 2,79 MB

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

Nội dung

TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID TẠI CÔNG TY TNHH KIẾN VIỆT

Trang 1

Trường Đại học Bách Khoa Tp HCM

Khoa Điện- Điện tử

Bộ môn Điện Tử

-o0o -

Cộng Hoà Xã Hội Chủ Nghĩa Việt Nam Độc lập – Tự do – Hạnh phúc -o0o -

THỰC TẬP TỐT NGHIỆP

Họ và tên: Nguyễn Hoàng Sang MSSV: 40902228 Nông Văn Hiếu MSSV: 40900822 Lớp DD09KSVT Ngành: Điện tử- Viễn thông 1.1 ĐẦU ĐỀ ĐỒ ÁN TÌM HỆ ĐIỀU HÀNH ANDROID TẠI CÔNG TY TNHH KIẾN VIỆT 1.2 NHIỆM VỤ - Tìm hiểu kiến trúc HDH Android, môi trường hoạt động - Lập trình Android trên thiết bị di động - Giao tiếp giữa thiết bị Android và MCU định hướng phát triển luận văn 1 Ngày giao nhiệm vụ :

2 Ngày hoàn thành nhiệm vụ:

3 Họ và tên giáo viên hướng dẫn: ThS BÙI QUỐC BẢO 4 Tên công ty thực tập: CÔNG TY TNHH KIẾN VIỆT Nội dung và yêu cầu ĐA đã thông qua Bộ môn Ngày tháng năm

CHỦ NHIỆM BỘ MÔN GIÁO VIÊN HƯỚNG DẪN PHẦN DÀNH CHO KHOA, BỘ MÔN Người duyệt (chấm sơ bộ):

Đơn vị:

Ngày bảo vệ:

Điểm tổng kết:

Trang 2

NHẬN XÉT CỦA CÔNG TY THỰC TẬP

Ngày tháng năm Giám đốc (đại diện)

Trang 3

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Trang 4

LỜI CẢM ƠN

Qua một thời gian nghiên cứu và thực hiện, đến nay chúng em đã hoàn thành

chương trình thực tập với đề tài: “Tìm hiểu HDH Android tại công ty Kiến Việt” do

thầy Bùi Quốc Bảo hướng dẫn Trong suốt thời gian nghiên cứu và thực hiện đề tài, em

đã gặp không ít khó khăn và đã nhận được sự giúp đỡ nhiệt tình và quý báu của thầy và các kĩ sư bên công ty Kiến Việt

Trước tiên, chúng em gửi lời cảm ơn sâu sắc tới thầy Bùi Quốc Bảo đã tin tưởng giới thiệu em với CTY KIẾN VIỆT để thực tập Chúng em cũng xin được gửi lời cảm

ơn chân thành tới các các anh kĩ sư bên CTY KIẾN VIỆT đã tạo điều kiện thuận lợi để chúng em hoàn thành đúng tiến độ chương trình thực tập

Do năng lực và thời gian còn hạn chế nên việc tìm thêm nhiều tài liệu cho quá trình tìm hiểu và nghiên cứu còn thiếu sót Em rất mong nhận được nhiều hơn nữa ý kiến đóng góp của các thầy, sự chia sẻ tài liệu của các bạn sinh viên để chúng em có thể hoàn thiện kiến thức của mình hơn

Em xin chân thành cảm ơn!

Trang 5

Mục Lục

Mục Lục 5

Danh sách hình vẽ 8

1 CHƯƠNG 1: TỔNG QUAN 9

1.1 Lịch sử hình thành 9

1.1.1 Lịch sử hình thành 9

1.1.2 Hướng phát triển trong tương lai 11

1.2 Môi trường cài đặt 12

1.2.1 Giới thiệu một số gói cần thiết 12

1.2.2 Làm quen với IDE 15

1.3 Các thành phần cơ bản của một ứng dụng Android 18

1.3.1 Activity 18

1.3.2 Service 20

1.3.3 ContentProvider 20

1.3.4 Broadcast Receiver 20

2 CHƯƠNG 2: XÂY DỰNG GUI 22

2.1 Layouts 24

2.1.1 FrameLayout 25

2.1.2 LinearLayout 26

2.1.3 RelativeLayout 27

2.1.4 TableLayout 28

2.1.5 AbsoluteLayout 28

Trang 6

2.2.4 Radio Button 33

2.2.5 Toast Notification và Alert Dialog 34

2.3 ListView 35

2.3.1 ListView với mảng dữ liệu định sẵn 35

2.3.2 ListView với ArrayList 37

2.3.3 CustomListview 39

3 CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG GTALK 42

3.1 Giới thiệu 42

3.1.1 Kiến trúc XMPP(Extensible Messaging and Presence Protocol) 42

3.1.2 Address trong XMPP 43

3.1.3 XMPP protocol 43

3.1.4 Giới thiệu về gói thư viện asmack.jar 44

3.2 Xây dựng project XMPPChatDemo 44

3.2.1 Code 44

3.2.2 Demo 50

4 CHƯƠNG 4: XÂY DỰNG ỨNG DỤNG STREAM AUDIO VÀ VIDEO 54

4.1 Giới thiệu về Audio trên Android 54

4.1.1 Định dạng hỗ trợ Audio 54

4.1.2 Khởi chạy Audio thông qua Intent 54

4.1.3 Xây dựng một ứng dụng Audio 56

4.2 Background and Networked Audio 59

4.2.1 Background Audio Playback 59

4.2.2 Networked Audio 59

4.3 Giới thiệu về Video playback 66

4.3.1 Định dạng hỗ trợ của Android 66

4.3.2 Cách mở một tập tin video lưu trữ trong SD card 66

Trang 7

4.3.3 Network video 66

4.3.4 Giao thức hỗ trợ HTTP và RTSP 67

4.3.5 Giao thức hỗ trợ HTTP và RTSP 68

5 CHƯƠNG 5: KẾT QUẢ ĐẠT ĐƯỢC VÀ ĐÁNH GIÁ HƯỚNG LUẬN VĂN 75

5.1 Kết quả đạt được 75

5.2 Hướng phát triển luận văn 75

Trang 8

Danh sách hình vẽ

Hình 1.1.1 Tỉ lệ sử dụng các phiên bản Android 11

Hình 1.1.2 Biểu đồ thể hiện thị phần của Android 11

Hình 1.2.1 Download JDK 12

Hình 1.2.2 Download ADT cho windown 13

Hình 1.2.3 Install Android SDK 14

Hình 1.2.4 Cấu trúc cây thư mục của một ứng dụng 15

Hình 1.2.5 Vùng thao tác với layout 15

Hình 1.2.6 Tạo máy ảo AVD device 16

Hình 1.2.7 Máy ảo AVD bản 4.2.2 17

Hình 1.2.8 Giao diện DDMS 17

Hình 1.2.9 Activity lifecycle 19

Trang 9

2 là BB os với 28% và iOS ở vị trí thứ 3 với 22% Android có một cộng đồng những nhà phát triển rất lớn viết các ứng dụng cho hệ điều hành của mình Hiện tại có khoảng 1000,000 ứng dụng cho Android OS và vào khoảng 1000,000 ứng dụng đã được đệ trình, điều này khiến Android trở thành hệ điều hành di động có môi trường phát triển lớn thứ 2 Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm và viễn thông nhằm mục đính tạo nên một chuẩn mở cho điện thoại di động trong tương lai Google công bố hầu hết các mã nguồn của Android theo bản cấp phép Apache Hệ điều hành Android bao gồm

12 triệu dòng mã; 3 triệu dòng XML, 2.8 triệu dòng mã C, 2.1 triệu mã JAVA và 1.75 triệu dòng mã C++.Chi tiết lịch sử phát triển như sau:

Tháng 7 năm 2005, Google mua lại Android, Inc., một công ty nhỏ mới thành lập có trụ sở ở Palo Alto , California , Mỹ Những nhà đồng sáng lập của Android chuyển sang làm việc tại Google gồm có Andy Rubin (đồng sáng lập công ty Danger), Rich

Miner (đồng sáng lập công ty Wildfire Communications), Nick Sears (từng là

Trang 10

động dựa trên hạt nhân Linux, được họ tiếp thị đến các nhà sản xuất thiết

bị cầm tay và các nhà mạng trên những tiền đề về việc cung cấp một hệ thống mềm dẻo, có khả năng nâng cấp mở rộng cao Một số nguồn tin cho biết trước đó Google đã lên danh sách các thành phần phần cứng và các đối tác phần mềm, đồng thời ra hiệu với các nhà mạng rằng họ sẵn sàng hợp tác ở nhiều cấp độ khác nhau Ngày càng nhiều suy đoán rằng Google sẽ tham gia thị trường điện thoại di động xuất hiện trong tháng 12 năm 2006 Tin tức của BBC và Nhật Báo Phố Wall chú thích rằng Google muốn đưa công nghệ tìm kiếm và các ứng dụng của họ vào điện thoại di động và họ đang nỗ lực làm việc để thực hiện điều này Các phương tiện truyền thông in và online cũng sớm có bài viết về những tin đồn cho rằng Google đang phát triển một thiết bị cầm tay mang thương hiệu Google Và lại càng có nhiều suy đoán sau bài viết về việc Google đang định nghĩa các đặc tả công nghệ và trình diễn các mẫu thử với các nhà sản xuất điện thoại di động và nhà mạng.Tháng 9 năm 2007, Information Week đăng tải một nghiên cứu của Evalueserve cho biết Google đã nộp một số đơn xin cấp bằng sáng chế trong lĩnh vực điện thoại di động

Trang 11

Hình 1.1.1 Tỉ lệ sử dụng các phiên bản Android

Hình 1.1.2 Biểu đồ thể hiện thị phần của Android

Trang 12

1.2 Môi trường cài đặt

1.2.1 Giới thiệu một số gói cần thiết

1.2.1.1 Java SE Development Kit(JDK)

Java SE là hệ thống nền tảng Java và thường được cài đặt lên máy PC hay laptop

để tiện lợi cho các nhà lập trình tiến hành phát triển các ứng dụng có nền tảng java Android SDK là bộ phát triển ứng dụng Android trên nền Java và nó đòi hỏi Java SE JDK phiên bản 5 hay cao hơn Hiệp hội các thiết bị cầm tay mở và Google chọn Java là nền tảng để xây dụng Android không chỉ có lí do là nó là mã nguồn

mở mà còn có lí do quan trọng không kém là nó được hỗ trợ trên nhiều hệ điều hành khác nhau từ Windows, Macintosh(x86), Solaris cho đến Linux

Hình 1.2.1 Download JDK

Trên Java SE JDK là nền tảng, còn để lập trình trên Java thì có nhiều môi trường phát triển phần mềm (IDE) chẳng hạn như Eclipse, Netbean…

Trang 13

1.2.1.2 Giới thiệu về plugin ADT(Android Development Tools)

ADT là plugin mở rộng được tích hợp vào môi trường phát triển phần mềm Eclipse Nó cho phép ta tạo và kiểm lỗi ứng dụng Android dễ dàng hơn và nhanh chóng hơn Cho phép ta thực hiện các công việc sau:

 Truy xuất trực tiếp đến các công cụ phát triển Android khác bên trong Eclipse Ví dụ, ADT cho phép truy xuất đến chức năng của công cụ DDMS như: chụp màn hình, quản lý liên kết với thiết bị, đặt điểm dừng để kiểm lỗi, và xem thông tin các luồng và tiến trình trự tiếp từ Eclipse

 Nó cung cấp New Project Wizard, mà giúp ta tạo và thiết lập tất cả các tập tin cơ bản cần thiết cho một ứng dụng Android mới

 Nó tự động hóa và làm đơn giản hóa tiến trình xây dựng ứng dụng Android

 Nó cung cấp trình biên tập mã lệnh Android mà giúp ta viết lệnh XML cho tập tin AndroidManifest và các tập tin tài nguyên khác

Xuất ra tập tin apk “đã đăng ký” (signed) hoặc “chưa đăng ký” (unsigned) để mà phân phối ứng dụng cho người dùng cuối

1.2.1.3 Sử dụng ADK

Sau khi cài đặt xong nền tảng JDK ta tải về Eclipse ADT ADT tích hợp sẵn trong phiên bản này tại địa chỉ :http://developer.android.com/sdk/index.html

Trang 14

Chọn đúng hệ điều hành và tải về, sau đó giải nén chạy eclipse.exe Sau đó ta tiến hành install Android SDK cho eclipse Chú ý chỉ cài những version cần thiết

Hình 1.2.3 Install Android SDK

Như vậy ta đã thiết lập đầy đủ điều kiện để tiến hành lập trình ứng Android

Trang 15

1.2.2 Làm quen với IDE

1.2.2.1 Project explorer

 MainActivity.java và main.xml:

Khi một ứng dụng được tao ra thì thông

thường sẽ có một Activity để khởi chạy

ứng dụng Ta hiểu rằng MainActivity.java

chính là class chứa toàn bộ source code,

còn main.xml chính là phần giao diện Đối

với Android khi một Activity tạo ra thì

thường nó đi kèm với một layout riêng

 Bất kì một Activity nào muốn

được triệu gọi thành công trong Android

Project thì bắt buộc nó phải được khai báo

trong tập tin AndroidManifest.xml Nếu

như không khai báo Activity mà gọi đến nó

thì chương trình sẽ bị lỗi và tắt

là thư mục do Android tự động tạo ra Tất

cả những giao diện hay thiết lập string.xml,

menu Mọi thứ liên quan tới resource đều

được sinh ra trong R.java Dựa vào đây để

ta có thể truy xuất các đối tượng trong

 Quan sát file main.xml :

Hình 1.2.4 Cấu trúc cây thư mục của

một ứng dụng

Trang 16

Vùng này bao gồm:

vùng giao diện

o Vùng giao diện chính là vùng mà ta cần thiết kế

o Các tùy chọn chế độ hiện thị cho layout đang làm việc như đứng hay ngang, zoom in hoặc zoom out

o Vùng properties :Vùng này thiết lập các thuộc tính cho các control được kéo thả vào giao diện

1.2.2.2 DDMS và máy ảo AVD (Android Virtual Device)

Chọn Window=> Android virtual Device Manager => new và thiết lập các thông số như hình sau:

Hình 1.2.6 Tạo máy ảo AVD device

Chọn start để khởi động máy ảo :

Trang 17

Hình 1.2.7 Máy ảo AVD bản 4.2.2

Vào window => open perspective => DDMS

Trang 18

o Cửa sổ device bên trái cho biết thiết bị thật hay ảo này đang kết nối với ADT và nhưng app nào đang chạy trên thiết bị

o Cửa sổ bên phải là File Explorer cho thấy hệ thống các file trong thiết bị bao gồm cả Sdcard ta có thể nạp file vào sdcard hay lấy file dữ liệu ra thông qua màn hình này

o Dưới cùng là màn hình longcat cho phép ta theo dõi tiến trình nào đang chạy hoặc lỗi xảy ra, rất tiện dụng cho việc phát hiện và kiểm tra code

1.3 Các thành phần cơ bản của một ứng dụng Android

1.3.1 Activity

Hiểu một cách đơn giản thì Activity là nền của 1 ứng dụng Khi khởi động 1 ứng dụng Android nào đó thì bao giờ cũng có 1 main Activity được gọi, hiển thị màn hình giao diện của ứng dụng cho phép người dùng tương tác Để hiểu được cách thức hoạt động của một Activity ta quan sát vòng đời của nó

Trang 19

Hình 1.2.9 Activity lifecycle

Trang 20

1.3.2 Service

Một service là một thành phần chạy ẩn (runs in the background) để thực hiện các thao tác chạy lâu dài hoặc điều khiển các tiến trình Service thì không có giao diện người dùng

Ví dụ: Một service phát nhạc (không cần giao diện ) trong khi người dùng đang

sử dụng một ứng dụng khác, hoặc nó trao đổi dữ liệu qua mạng mà không làm ngăn cản sự tương tác của người dùng với một activity Một thành phần khác, chẳng hạn như một activity, có thể start service và tương tác với nó

Một service được implement như là một subclass của lớp Service

1.3.4 Broadcast Receiver

Một broadcast receiver là một thành phần phản ứng với các thông báo từ bên ngoài gửi tới hệ thống Nhiều broadcasts có nguồn gốc từ hệ thống chẳng hạn, một broadcast thông báo các màn hình đã tắt, pin yếu, hoặc chụp hình Các ứng dụng cũng có thể khởi tạo các broadcast ví dụ, để cho các ứng dụng khác biết được rằng một số dữ liệu đã được tải về thiết bị và sẵn sàng để sử dụng Mặc dù broadcast không hiển thị 1 giao diện người dùng, chúng có thể tạo một thông báo trên thanh trạng thái để cảnh báo người dùng khi có một sự kiện broadcast xảy ra Thông

Trang 21

thường hơn, một broadcast receiver là một “cửa ngõ” (gateway) cho các thành phần khác và được dự định để làm một số lượng tối thiểu các công việc Ví dụ nó

có thể khởi tạo một service để thực hiện một vài công việc dựa trên các sự kiện.Một broadcast receiver được implement như là một subclass của BroadcastReceiver và mỗi broadcast được dẫn xuất như là một đối tượng Intent

Trang 22

2 CHƯƠNG 2: XÂY DỰNG GUI

Có thể nói hầu hết mọi ứng dụng trên thiết bị di động đều cần phải có một giao diện người dùng (GUI) để cho phép người sử dụng có thể tương tác với thiết bị Cho nên đây là một phần quan trọng và căn bản để bắt đầu xây dựng một ứng dụng Android Trong phần này ta sẽ lần lượt tìm hiểu các thành phần giao diện

hiểu các giao diện điều khiển nâng cao như ListView…

Tất cả các giao diện người dùng được thực thi trong Android app đều được xây dựng lên từ dối tượng View và ViewGroup.Một View là một đối tượng xuất hiện trên màn hình mà người dùng có thể tương tác với nó Một ViewGroup là đối tượng mà bao gồm các View hoặc ViewGroup khác để định nghĩa lớp giao tiếp

Giao diện người dùng được xây dựng theo kiểu cây phân cấp, cấu tạo nên từ các đối tượng View và ViewGroup được chỉ ra trong hình vẽ Mỗi ViewGroup xem như một nhóm các View và ViewGroup con Trong khi View và ViewGroup con có thể là điểu khiển đầu vào (Input control) hoặc đơn giản chỉ là một phần của giao diện hiện thị

Trang 23

Ví dụ: Bố trí đơn giản của một layout cơ bản

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

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

Trang 24

2.1 Layouts

Layout xác định cách bố trí hình ảnh cho một giao diện người dùng trên screen, Chẳng hạn như giao diện cho một activity hoặc app widget Chúng ta có thể khai báo layout theo 2 cách:

 Khai báo thành phần giao diện người dùng trong XML

 Khai báo layout trong thời gian chạy ứng dụng

Trong Android chúng ta có thể sự dụng linh hoạt một hoặc cả hai cả hai phương pháp

để khai báo bố trí và quản lí các thành phần lauout Ví dụ, chúng ta có thể khai báo các thành phần giao diện mặc định của ứng dụng trong XML, bao gồm các thành phần màn hình sẽ xuất hiện trong nó và thuộc tính của nó Sau đó chúng ta có thể thêm mã trong ứng dụng của mình có thể sẽ thay đổi trạng thái của các đối tượng màn hình, bao gồm

cả những khai báo trong XML trong khi ứng dụng đang chạy

Một điều nữa là bản thân layout chỉ là một thành phần giao diện hiện thị, tự nó không thể load lên sceen cũng như không thể tiếp nhận các tương tác với người dùng nên để

nó có thể hoạt động thì bắt buộc phải có một file Activity.Java điều khiển nó Thông thường một file layout.xml thường sẽ đi kèm với một file Activity.java để điều khiển

nó Ví dụ: chúng ta tạo một main_layout.xml với nội dung giống như trong ví dụ trên Để lauout đó xuất hiện trên screen thi trong file Activity.java ta phải gọi

setContentView(R.layout main_layout.xml) để load layout lên screen

public void onCreate (Bundle savedInstanceState ) {

super onCreate ( savedInstanceState );

setContentView ( layout main_layout );

}

Layout cũng có nhiều loại như: LinearLayout, TableLayout, FrameLayout,

RelativeLayout, AbsoluteLayout Trong một ứng dụng ta thường phải kết hợp các loại layout nay lại với nhau

Trang 25

2.1.1 FrameLayout

Là loại Layout cơ bản nhất, đặc điểm của nó là khi gắn các control lên giao diện thì các control này sẽ luôn được “Neo” ở góc trái trên cùng màn hình, nó không cho phép chúng ta thay đổi vị trí của các control theo một Location nào đó Các control đưa vào sau nó sẽ đè lên trên và che khuất control trước đó (trừ khi ta thiết lập transparent cho control sau)

Ví dụ: chúng ta có đoạn xml sau

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

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

Ta thấy, hình màu đỏ và màu xanh luôn được

“neo” ở góc trái màn hình Hình màu đỏ đưa vào

sau sẽ đè lên trên hình màu xanh

Trang 26

2.1.2 LinearLayout

Đây là layout được dùng rất phổ biến cùng với TableLayout và RelativeLayout Layout này cho phép các control sắp xếp theo 2 hướng giao diện không chồng lắp lên nhau: hướng từ trái sang phải(horiental) và từ trên xuống dưới

(vertical)

Ví dụ:

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

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

Trang 27

2.1.3 RelativeLayout

RelativeLayout cho phép sắp xếp các control theo vị trí tương đối giữa các control khác trên giao diện (kể cả control chứa nó) Thường nó dựa vào Id của các control khác để sắp xếp theo vị trí tương đối Do đó khi làm RelativeLayout

ta phải chú ý là đặt Id control cho chuẩn xác, nếu sau khi Layout xong mà bạn lại đổi Id của các control thì giao diện sẽ bị xáo trộn (do đó nếu đổi ID thì phải đổi luôn các tham chiếu khác sao cho khớp với Id bạn mới đổi)

Ví dụ:

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

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

Trang 28

2.1.4 TableLayout

Đây là một dạng control cũng rất hay sử dụng Nó cho phép sắp xếp các control

theo dạng dòng và cột

TableLayout sẽ xem xét dòng nào có nhiều control nhất để xác định số lượng

cột Nó sẽ lấy dòng có số cột nhiều nhất để lấy làm số cột

Theo như hình trên thì TableLayout này có 3 dòng 4 cột

2.1.5 AbsoluteLayout

Cho phép thiết lập các control giao diện theo vị trí tùy thích Tuy nhiên loại

control này lại khó sử dụng vì bản chất hệ điều hành Android chạy trên nhiều dòng

máy khác nhau nên có rât nhiều loại screen với các kích thước khác nhau Do đó

các phiên bản android về sau google không khuyến khích các lập trình viên sử

dụng loại lauout này

Như vậy ta đa đi qua đặc điểm cơ bản của các loại layout Trong thực tế ta

thường phải sử dụng kết hợp các loại layout này với nhau để tạo giao diện màn

hình

Trang 29

2.2 Các control cơ bản

Trong phần trước ta đã hiểu về layout, tiếp phần này ta sẽ tìm hiểu về cách sử dụng các control cơ bản như :Button, TextView, EditText… Bảng dưới mô tả các loại control thường sử dụng trong android

Control Type Description Related Classes

Button A push-button that can be pressed, or

clicked, by the user to perform an action

Button

Text field An editable text field You can use

theAutoCompleteTextView widget to create a text entry widget that provides auto-complete suggestions

EditText , AutoComple teTextView

Checkbox An on/off switch that can be toggled by the

user You should use checkboxes when presenting users with a group of

selectable options that are not mutually exclusive

CheckBox

Radio button Similar to checkboxes, except that only

one option can be selected in the group

RadioGroup

RadioButton

Toggle

button

An on/off button with a light indicator ToggleButton

Spinner A drop-down list that allows users to select

one value from a set

Spinner

Pickers A dialog for users to select a single value

for a set by using up/down buttons or via a swipe gesture Use aDatePickercode>

DatePicker , TimePick er

Trang 30

2.2.1 Button

Một Button bao gồm một text

hoặc một icon (hoặc cả text và

icon) mà đáp ứng lại những hành

động xẩy ra khi người dùng chạm vào nó Tùy thuộc vào mục đích của mình mà

ta có thể tạo ra một button trong layout theo một trong 3 cách

 Với text, sử dụng lớp button:

Đáp ứng sử kiện OnClick trên button:

Button button = (Button) findViewById ( id button_send );

button setOnClickListener ( new View.OnClickListener()

public void onClick (View v ) {

// Do something in response to button click

}

});

Trang 31

2.2.2 EditText và TextView

Trong android đối trượng EditText được sự dụng như một TextView hoặc một TextBox Giá trị thuộc tính singleLine bằng false, EditText sẽ là một TextBox ngược lại là một TextView

Để lấy id của đối tượng tương ứng

Trang 32

2.2.3 Checkboxes

Checkboxes cho phép người

dùng lựa chọn một hoặc nhiều

public void onCheckboxClicked (View view ) {

// Is the view now checked?

boolean checked ((CheckBox) view ) isChecked ();

// Check which checkbox was clicked

switch ( view getId ())

Trang 33

public void onRadioButtonClicked (View view ) {

// Is the button now checked?

boolean checked ((RadioButton) view ) isChecked ();

// Check which radio button was clicked

switch ( view getId ())

Trang 34

2.2.5 Toast Notification và Alert Dialog

Trong nhiều ứng dụng chúng ta phải đưa ra thông báo hay là để đưa ra một cảnh báo để người dùng xác nhận thì lúc này Toast Notification và Alert Dialog là hai đối tượng rất hữu dụng Toast Notification chỉ đơn thuần đưa ra thông báo cho người dùng trong khoản thời gian từ 1-3s rồi tự động tắt trong khi Alert Dialog cho phép người dùng tương tác vói nó

Để hiện thị một Toast Notification ta tạo một đối tượng thuộc Toast và cho hiện thị chúng

// example toast

Toast toast =

Toast.makeText(MainActivity.this ,

"Vi du ve toast" , Toast.LENGTH_LONG);

// example alert dialog

AlertDialog.Builder alertdialog = new AlertDialog.Builder(

Trang 35

2.3 ListView

Trong phần trước ta đã biết cách sử

dụng các control cơ bản, trong phần

này ta tiếp tục sử dụng các control

nâng cao hơn, cụ thể là ListView

Trong các ứng dụng cần lưu trữ và hiện

thị danh sách các thông tin đa thành

phần thì chúng ta sài ListView Đây là

một công cụ khó sử dụng nhưng lại

hay được dùng Khi đã sử dụng ListView nhần nhuyễn rồi thì các control nâng cao khác chúng ta cũng sẽ sử dụng dễ dàng

Vì ListView được sử dụng theo nhiều cách khác nhau, và rất tùy biến nên trong phần này ta sẽ lần lượt đi qua từng cách sử dụng ListView và cuối cùng là Custom lại ListView

2.3.1 ListView với mảng dữ liệu định sẵn

Là Đây là outline để ta tiện thiết kế giao diện xml

Trang 36

Đây là phần xử lí gán data vào ListView :

// khoi tao du lieu cho mang array

final String arr[] = { "Cao Văn Hoàn" , "Nguyễn Hoàng Trung" ,

"Nông văn hiếu" , "Nguyễn Hoàn Sang" , "Hồ thị Kỷ" ,

"Trần thị Liên" };

// lay doi tuong listview dua vao id ListView lvPerson = (ListView) findViewById(R.id.lvPerson); // Gan data source vao array adapter

ArrayAdapter<String> adapter = new ArrayAdapter<String>( this ,

AdapterView.OnItemClickListener() {

int arg2, long arg3) { // đối số arg2 là vị trí phần tử trong Data Source (arr) tvSelect.setText( "position :" + arg2 + " ; value =" +

arr[arg2]);

} });

}

}

Như vậy để gán data vào ListView ta phải sử dụng một adapter Đầu tiên ta gán mảng arr vao ArrayAdapter sau do gán tiếp ArrayAdapter vào ListView để hiện thị Trong code trên ta có sử dụng phương thức setOnItemClickListener()

để lắng nghe sự kiện click trên phần tử bất kì của ListView

Trang 37

2.3.2 ListView với ArrayList

Ở đây thay vì gán một mảng dữ liệu vào ArrayAdapter thì ta tạo một đối tượng arrayList để gán vào ArrayAdapter

Ngày đăng: 21/07/2015, 16:16

HÌNH ẢNH LIÊN QUAN

Hình 1.1.1 Tỉ lệ sử dụng các phiên bản Android - TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID TẠI CÔNG TY TNHH KIẾN VIỆT
Hình 1.1.1 Tỉ lệ sử dụng các phiên bản Android (Trang 11)
Hình 1.1.2 Biểu đồ thể hiện thị phần của Android - TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID TẠI CÔNG TY TNHH KIẾN VIỆT
Hình 1.1.2 Biểu đồ thể hiện thị phần của Android (Trang 11)
Hình 1.2.2 Download ADT cho windown - TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID TẠI CÔNG TY TNHH KIẾN VIỆT
Hình 1.2.2 Download ADT cho windown (Trang 13)
Hình 1.2.3 Install Android SDK - TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID TẠI CÔNG TY TNHH KIẾN VIỆT
Hình 1.2.3 Install Android SDK (Trang 14)
Hình 1.2.5 Vùng thao tác với layout - TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID TẠI CÔNG TY TNHH KIẾN VIỆT
Hình 1.2.5 Vùng thao tác với layout (Trang 15)
Hình 1.2.6 Tạo máy ảo AVD device - TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID TẠI CÔNG TY TNHH KIẾN VIỆT
Hình 1.2.6 Tạo máy ảo AVD device (Trang 16)
Hình 1.2.7 Máy ảo AVD bản 4.2.2 - TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID TẠI CÔNG TY TNHH KIẾN VIỆT
Hình 1.2.7 Máy ảo AVD bản 4.2.2 (Trang 17)
Hình 1.2.8 Giao diện DDMS - TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID TẠI CÔNG TY TNHH KIẾN VIỆT
Hình 1.2.8 Giao diện DDMS (Trang 17)
Hình 1.2.9 Activity lifecycle - TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID TẠI CÔNG TY TNHH KIẾN VIỆT
Hình 1.2.9 Activity lifecycle (Trang 19)
Hình 3.1.2 XMPP network - TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID TẠI CÔNG TY TNHH KIẾN VIỆT
Hình 3.1.2 XMPP network (Trang 43)
Hình 3.1.3 XMPP protocol - TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID TẠI CÔNG TY TNHH KIẾN VIỆT
Hình 3.1.3 XMPP protocol (Trang 44)
Hình 3.2.1 Layout ChatDemo - TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID TẠI CÔNG TY TNHH KIẾN VIỆT
Hình 3.2.1 Layout ChatDemo (Trang 45)
Hình 3.2.2 Cấu trúc MainActivity - TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID TẠI CÔNG TY TNHH KIẾN VIỆT
Hình 3.2.2 Cấu trúc MainActivity (Trang 46)
Hình 3.2.3Kết quả trên máy A - TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID TẠI CÔNG TY TNHH KIẾN VIỆT
Hình 3.2.3 Kết quả trên máy A (Trang 52)
Hình 3.2.4 Kết quả trên máy B - TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID TẠI CÔNG TY TNHH KIẾN VIỆT
Hình 3.2.4 Kết quả trên máy B (Trang 53)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w