I HM TPHCM
KHOA CÔNG NGHỆ THÔNG TIN
LÊ ANH TOÀN
TRẦN CÔNG MINH
XÂY DỰNG ỨNG DỤNG
TRA CỨU TÀU, XE TRÊN
HỆ ĐIỀU HÀNH ANDROID
KHÓA LUẬN TỐT NGHIỆP
TP.H CHÍ MINH -
1
I HM TPHCM
KHOA CÔNG NGHỆ THÔNG TIN
LÊ ANH TOÀN
TRẦN CÔNG MINH
XÂY DỰNG ỨNG DỤNG
TRA CỨU TÀU, XE TRÊN
HỆ ĐIỀU HÀNH ANDROID
CHUYÊN NGÀNH: CÔNG NGHỆ PHẦN MỀM
KHÓA LUẬN TỐT NGHIỆP
NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. TRẦN NGỌC BẢO
2
LỜI CẢM ƠN
Trong thi gian thc hin lui s ng dn ca Khoa Công Ngh Thông
i Hc bit là s ng dn ca thy Trn Ngc
Bi th kic kt qu y
chúng em xin chân thành gi ln :
Thy Trn Ngc Bo ng phòng Công Ngh ng
i hng dng và phát
trin lut nghip. S ng dn nhit tình ca th
cng c kin thc và hoàn thành tt lut nghip. Chúng em xin chân thành cám
y.
Quý thy cô Khoa Công Ngh i h m
Tp.HCM nói riêng và các thi Hng
dn dy bo, giúp chúng em trang b nhng kin thc quý báu trong sut thi gian hc tp
và nghiên cu.
Dù rt c gng và liên tc nâng cao kin th tài vn không th tránh
nhng sai sót và hn cht mong nhc s thông cm và ý kin
ch b chúng em có th hoàn thin nhc phi. Mt ln
na, chúng em xin chân thành c
Nhóm sinh viên thc hin
Lê Anh Toàn Trn Công Minh
3
MC LC
Bng các thut ng và các t vit tt 8
Danh mc các bng biu 9
Danh mc các hình nh 11
14
PHN 1: TÌM HIU V K THUT LP TRÌNH TRÊN ANDROID 16
1 tin hành lp trình trong Android 16
1.1. Java Runtime Environment (JRE) 16
1.2. Eclipse IDE 16
1.3. Android SDK 16
1.4. Android ADT 17
2 K thut lp trình vu khin 17
2.1. ListView 17
2.1.1. Yêu ct ra 17
2.1.2. Gii quyt 18
2.2. GridView 18
2.2.1. Yêu ct ra 18
2.2.2. Gii quyt 18
2.3. Spinner View, DatePicker 19
2.3.1. Yêu ct ra 19
2.3.2. Gii quyt 19
2.4. TabHost View 20
2.4.1. Yêu ct ra 20
2.4.2. Gii quyt 21
2.5. Gallery và ImageView 21
2.5.1. Yêu ct ra 21
2.5.2. Gii quyt 22
4
3 K thut lp trình vi SQLite 22
3.1. Gii thiu 22
3.2. Ví d minh ha 24
3.2.1. t v 24
3.2.2. Gii quyt 25
4 K thut lp trình vi Web Service 25
4.1. Dng SOAP (Simple Object Access Protocol) 25
4.2. a 26
4.2.1. 26
4.2.2. Gii quyt 28
5 Phát audio, video trong Android 28
5.1. Gii thiu 28
5.1.1. Phát audio 28
5.1.2 Phát video 30
5.2. Minh ha 31
5.2.1. V t ra 31
5.2.2. Gii quyt 31
PHN 2: XÂY DNG NG DNG TRA CU THÔNG TIN TÀU, XE 32
6
32
6.1.
32
6.2 c t yêu cu 33
7 Phân tích, thit k 46
7.1. Mô hình thc th kt hp (CDM) 46
7.1.1. Thc th Hang 47
7.1.2. Thc th PhuongTien 47
7.1.3. Thc th LoaiPhuongTien 47
7.1.4. Thc th Phim 48
7.1.5. Thc th HinhAnh 48
5
7.1.6. Thc th DiaDiem 48
7.1.7. Thc th Tuyen 48
7.1.8. Thc th TrungGian 49
7.1.9. Thc th LoaiGhe 49
7.1.10. Thc th Gia 49
7.1.11. Thc th DoiTuong 50
7.1.12. Thc th KhuyenMai 50
7.1.13. Mi kt hp ChiTietTuyen 50
7.1.14. Mi kt hp ChiTietViTri 51
7.2. Mô hình vt lý (PDM) 51
7.2.1. Bng Hang 53
7.2.2. Bng Phim 53
7.2.3. Bng LoaiPhuongTien 54
7.2.4. Bng ChiTietHang 54
7.2.5. Bng PhuongTien 54
7.2.6. Bng HinhAnh 55
7.2.7. Bng KhuyenMai 56
7.2.8. Bng Gia 56
7.2.9. Bng ChiTietViTri 57
7.2.10. Bng LoaiGhe 58
7.2.11. Bng Tuyn 58
7.2.12. Bng TrungGian 59
7.2.13. Bng ChiTietTuyen 60
7.2.14. Bng Nhom 60
7.2.15. Bng NguoiDung 60
7.2.16. Bng ChucNang 61
7.2.17. Bng ChiTietChucNang 61
7.3. Thit k giao din 62
6
7.3.1. Giao din phân h tra cu trên nn web 62
7.3.2. Giao din qun tr phân h web 67
7.3.3. Giao din phân h tra cu trên thit b ng 99
8 t 109
8.1. t phân h qun tr web 109
8.2. t phân h tra cu trên nn web 109
8.3. t phân h tra cu trên mobile 110
9 Tng kt 110
9.1. Kt lun 110
9.1.1. Nhng kt qu c v mt lý thuyt 110
9.1.2. Nhng kt qu c v mt ng dng 110
9.2. ng phát trin 111
TÀI LIU THAM KHO 112
PH LC: MÃ NGUN PHN MINH HA K THUT 113
1 K thut lp trình vu khin 113
1.1 ListView 113
1.1.1 Xây dng giao din 113
1.1.2 Xây dng x lý 115
1.2 GridView 117
1.2.1 Xây dng giao din 117
1.2.2 Xây dng x lý 118
1.3 Spinner View, DatePicker 121
1.3.1 Xây dng giao din 121
5.3.2. Xây dng x lý 123
1.4 TabHost View 126
1.4.1 Xây dng giao din 126
1.4.2 Xây dng x lý 128
1.5 Gallery và ImageView 128
7
1.5.1 Xây dng giao din 128
1.5.2 Xây dng x lý 129
2 K thut lp trình vi SQLite 131
2.1 Xây dng giao din 131
2.2 Xây dng x lý 136
3. K thut lp trình vi Web Service 144
3.1 Xây dng giao din 144
3.2 Xây dng x lý 148
4. Demo lp trình phát audio, video 153
4.1 Xây dng giao din 153
4.2 Xây dng x lý 155
8
Bảng các thuật ngữ và các từ viết tắt
Ký hiệu
Diễn giải
ADT
ADT - Android Development Tools, b công c
h tr cho phn mm Eclipse trong vic phát trin ng
dng Android
Android
H u hành trên n thong phát trin bi
Google và da trên nn tng Linux
AVD Manager
Giao din qun lý cu hình thit b Android o
3G
Mng 3G là th h th ba ca chun công ngh
n thong, cho phép truyn c d liu thoi và
d liu ngoài thoi (ti d liu, gi email, tin nhn
nhanh, hình nh )
HTML
HTML - Hyper Text Markup Language, là ngôn
ng c thit k to nên
các trang web
IDE
IDE - Integrated Development Environment, còn
gi là mng phát trin tích hp
iOS
H u hành trên các thit b ng ca hãng
Apple
Java Runtime
Environment
Là thành phn ca b công c phát trin, h tr
phát trin ng dng Java
KSOAP2
viên h tr gi Web Service dng SOAP trên
Android
SD Card
Mt dng th nh ca thit b ng
SDK
SDK - Software Development Kit là b công c
phát trin ng dng phn mm
SOAP
SOAP Simple Object Access Protocol, m tiêu
chun ca W3C, là giao thc s d nh
liu dng thun thông qua giao thc
HTTP
URL
URL - Uniform Resource Locator
tham chiu ti tài nguyên trên mng Internet.
Web Service
Mt tp hc gi thc hin
t xa thông qua ma ch
Window Service
Windows service là mt ng dng chy trên máy
server hoc workstation và cung cp nhng ch
mà s din tin ca nó không cn s c tip
ci dùng
9
Danh mục các bảng biểu
Bng 6.1 - c t use case tra cu gi tàu, xe 34
Bng 6.2 - c t use case tra cu hành trình tàu, xe 35
Bng 6.3 - c t use case tra cu giá vé tàu, xe 36
Bng 6.4 - c t use case gt vé tàu, xe 36
Bng 6.5 - c t use case chia s thông tin kt qu tra cu 37
Bng 6.6 - c t c s tra cu 37
Bng 6.7 - c t p 39
Bng 6.8 - c t use case nhp liu 39
Bng 6.9 - c t use case phân quyn 40
Bng 7.1 - Mô t thc th Hang 47
Bng 7.2 - Mô t thc th PhuongTien 47
Bng 7.3 - Mô t thc th LoaiPhuongTien 47
Bng 7.4 - Mô t thc th Phim 48
Bng 7.5 - Mô t thc th HinhAnh 48
Bng 7.6 - Mô t thc th DiaDiem 48
Bng 7.7 - Mô t thc th Tuyen 49
Bng 7.8 - Mô t thc th TrungGian 49
Bng 7.9 - Mô t thc th LoaiGhe 49
Bng 7.10 - Mô t thc th Gia 50
Bng 7.11 - Mô t thc th DoiTuong 50
Bng 7.12 - Mô t thc th KhuyenMai 50
Bng 7.13 - Mô t thc th ChiTietTuyen 50
Bng 7.14 - Mô t thc th ChiTietViTri 51
Bng 7.15 - Mô t bng Hang 53
Bng 7.16 - Mô t bng Phim 53
Bng 7.17 - Mô t bng LoaiPhuongTien 54
10
Bng 7.18 - Mô t bng ChiTietHang 54
Bng 7.19 - Mô t bng PhuongTien 54
Bng 7.20 - Mô t bng HinhAnh 55
Bng 7.21 - Mô t bng KhuyenMai 56
Bng 7.22 - Mô t bng Gia 56
Bng 7.23 - Mô t bng ChiTietViTri 57
Bng 7.24 - Mô t bng LoaiGhe 58
Bng 7.25 - Mô t bng Tuyen 58
Bng 7.26 - Mô t bng TrungGian 59
Bng 7.27 - Mô t bng ChiTietTuyen 60
Bng 7.28 - Mô t bng Nhom 60
Bng 7.29 - Mô t bng NguoiDung 60
Bng 7.30 - Mô t bng ChucNang 61
Bng 7.31 - Mô t bng ChiTietChucNang 61
11
Danh mục các hình ảnh
Hình 2.1 - Giao diu khin ListView 17
Hình 2.2 - Giao diu khin GridView 18
Hình 2.3 - Giao din minh h
19
Hình 2.4 - Giao diu khin TabHost 20
Hình 2.5 - Giao diu khin Gallery và ImageView 21
Hình 3.1 - Giao din ng dng minh ha SQLite 24
Hình 4.1 - Minh ha kt qu sau khi gi web service 27
Hình 4.2 - Mô hình kt ni g
27
Hình 4.3 - Hình minh ha vin KSOAP2 vào ng dng 28
Hình 5.1 - Minh ha
31
Hình 6.1 - Kin trúc ng dng tra cu thông tin tàu xe 32
Hình 6.2 - use case ci dùng cui 34
Hình 6.3 - use case ci qun tr h thng tàu, xe 38
Hình 6.4 - Quy trình x lý nghip v tra cu gi tàu, xe trên thit b ng 41
Hình 6.5 - Quy trình x lý nghip v tra cu l trình tàu, xe trên thit b ng 41
Hình 6.6 - Quy trình x lý nghip v tra cu giá vé tàu, xe trên thit b ng 42
Hình 6.7 - Quy trình x lý nghip v tra cu trên nn web 43
Hình 6.8 - Quy trình x lý nghip v nhp liu trên web server 44
Hình 6.9 - Quy trình x lý nghip v phân quyn 45
Hình 7.1 - CDM 46
Hình 7.2 - vt lý PDM 52
Hình 7.3 - Giao din trang tra cu 62
Hình 7.4 - Giao din kt qu khi không cung cp lon và hãng 63
Hình 7.5 - Giao din kt qu tra cu khi cung cp thông tin hãng vn chuyn 63
Hình 7.6 - Giao din kt qu tra cu khi cung cp thông tin lon 64
Hình 7.7 - Giao din kt qu khi cung cp lo tin và hãng 64
12
Hình 7.8 - Giao din thông tin l trình ca tuyn 65
Hình 7.9 - Giao din thông tin giá vé trên các trm ca tuyn 66
Hình 7.10 - Giao din thông tin giá vé gia các trm ca tuyn 66
Hình 7.11 - Giao din th hin hình nh cn 67
Hình 7.12 - Giao dip 67
Hình 7.13 - Activity biu dip 68
Hình 7.14 Giao din màn hình chính ca trang qun tr 69
Hình 7.15 - Giao din màn hình qun dành cho nhân viên h thng 69
Hình 7.16 - Activity biu din use case nhp liu 70
Hình 7.17 - Giao din màn hình qung khác 71
Hình 7.18 - Activity biu din use case nhp liu 72
Hình 7.19 - Giao din qun lý tuyi vi nhân viên nhp liu h thng 73
Hình 7.20 - Activity biu din use case nhp liu 74
Hình 7.21 - Giao din qun lý tuyi vng khác 75
Hình 7.22 - Activity biu din use case nhp liu 76
Hình 7.23 - Giao din qui vi nhân viên nhp liu h thng 77
Hình 7.24 - Activity biu din use case nhp liu 78
Hình 7.25 - Giao din qui vng khác 79
Hình 7.26 - Activity biu din use case nhp liu 80
Hình 7.27 - Giao din qun lý tài khoi vi nhân viên nhp liu h thng 81
Hình 7.28 - Activity biu din use case nhp liu 82
Hình 7.29 - Giao din qun lý tài khoi vng khác 83
Hình 7.30 - Activity biu din use case nhp liu 84
Hình 7.31 - Giao din qui dùng 85
Hình 7.32 - Activity biu din use case nhp liu 86
Hình 7.33 - Giao din danh mm 87
Hình 7.34 - Activity biu din use case nhp li 88
Hình 7.35 - Giao din danh mc hình i vi nhân viên h thng 89
13
Hình 7.36 - Activity biu din use case nhp liu 90
Hình 7.37 - Giao din danh mc hình i vng khác 91
Hình 7.38 - Activity biu din use case nhp liu 92
Hình 7.39 - Giao din danh mi vi nhân viên h thng 93
Hình 7.40 - Activity biu din use case nhp liu 94
Hình 7.41 - Giao din danh mi vng khác 95
Hình 7.42 - Activity biu din use case nhp liu 96
Hình 7.43 - Giao din danh mc loi gh 96
Hình 7.44 - Giao din danh mng 97
Hình 7.45 - Giao din danh mc lon 97
Hình 7.46 - Giao din danh mc khuyn mãi 98
Hình 7.47 - Giao din danh mc nhóm ch 98
Hình 7.48 - Giao din màn hình chính ng dng 99
Hình 7.49 - Giao dic s tra cu 99
Hình 7.50 - Activity biu dic s tra cu 100
Hình 7.51 - Giao din màn hình Gii thiu 101
Hình 7.52 Giao ding dn s dng 101
Hình 7.53 Giao din màn hình tra cu 102
Hình 7.54 - Activity biu din Use case tra cu tàu, xe 103
Hình 7.55 - Giao din 104
Hình 7.56 - Giao din màn hình th hin gi chy tàu, xe 104
Hình 7.57 - Activity biu din Use case xem gi chy tàu, xe 105
Hình 7.58 - Giao din màn hình th hin l trình 106
Hình 7.59 - Activity biu din Use case xem l trình tàu, xe 106
Hình 7.60 - Giao din màn hình th hin giá vé 107
Hình 7.61 - Activity biu din Use case xem giá vé tàu, xe 108
Hình 7.62 - Giao din màn hình th hin l trình trên b 109
14
Lơ
̀
i ni đầu
Ngày nay khi các thit b cm tay tr nên ph bi phát trin ln mnh
ca các h thng vin thông làm cho các dch v phc v nhu cu con ngi trên thit b
cm tay ngày càng ph bic bit là các dch v tra cu trc tuyn trên thit b cm
c d t phát trin khi mà công ngh mc phát trin
mt cách ri dùng t truyn ti d liu rt nhanh. Cùng vi
i ca h u hành mã ngun m Android có kh n cao, có th
c tic công ngh.
Theo comScore, th n thoi thông minh M thi gian gu du
hiu cho thy h u hành Android c ng hoàn toàn h u hành iOS
ca Apple và BlackBerry ca RIM. Ch u tiên cn 69,5
trii M s dng lon thoi cuc kh kt
thúc vào tháng 11/2010. 33% s n thoi tui t 13 tr lên tham gia cuc
kho sát cho bit h thích h n thoi
BlackBerry ca RIM, trong khi ch i s dng chn các sn phm ca
Apple. Vi nhng con s phát trit bt và ti
phát trin ca h u hành Android ln mc nào.
Khi nhu cu thông tin ngày càng phát trii dùng s mun truy cp hoc tìm
kim thông tin mi lúc, m s dng
tìm kin thoy
chu hình cao, có giá thành r c ph bic xây
dng các ng dng trên thit b ng s tr thành mt ngành công nghip ha hn s có
t phát trin nhanh trong nhi.
Dân s trung bình c c tính 87,84 trii (Tng cc Thng
kê), nhu ci vào các dp l, tng rt lu thông tin v giá vé
15
tàu, xe tng rt ln thông tin cung cp lng rt ít. Hin nay trong
t s ng dng tra c n xe buýt (ng dng
c xây d ng nhu ci vi xe buýt. Tuy nhiên, các ng
dng tra cu thông tin v xe khách, tàu l Vit Nam trên các thit b
minh dùng h u hành Android vc quan tâm và phát tric. Vì
nhng lý do trên mà chúng em quyu, tìm hiu k thut lp trình
trên Andr xây dng mt ng dng tra cu thông tin v tàu, xe trên thit b ng
s dng h u hành mã ngun m Android.
tài ca nhóm ch yn hai v
Mt là, xây dng ng dng tra cu thông tin các hãng tàu, xe trên
Android có các ch
- Cho phép tra cu thông tin gi chy, l trình, giá vé v
i dùng cung cp.
- Cho phép chia s thông tin tra cu thông qua các ng d
SMS, Facebook, Gmail.
- Cho phép xem lc s các tra cu gn t ci dùng
Hai là, xây dng mt web server h tr cho vic nhp liu các thông tin
v các hãng tàu, xe. Bên cc h tr l trang web dng HTML ca
hãng , xe.
2
:
1:
2:
, xe
.
.
.
& Công Minh
16
PHẦN 1: TÌM HIỂU VỀ KỸ THUẬT LẬP TRÌNH TRÊN
ANDROID
1 Các bƣớc để tiến hành lập trình trong Android
Không giy h u hành Android có th hoc trên
hu ht các nn tng t Windows, Linux và Mac. Do vy, hu ht các h u hành và cu
hình máy tính hin nay u có th ti v và s dng c b công c lp trình lp trình
này. Thêm na, các nn tng và các b công c lp trình cu min phí. Do
n có th ti v trc tip các b công c lp trình này trên trang ch ca
i phát hành. có th bt u lp trình trên h u hành Android, mt s phn
mm sau s cn phi c t :
1.1. Java Runtime Environment (JRE)
B JRE giúp làm nn t chy các ng dng trên h u hành Android. Ti thi
m hin ti thì b Java Platform mi nht là JRE 7. Chúng ta có th vào trang
ti v t theo
ng dn mnh mà phn m tránh nhn
các tc sau này khi lp trình.
1.2. Eclipse IDE
ng h tr lp trình Java rt tt và tin li. Ti thm này thì bn
Eclipse mi nht là phiên bn INDIGO i dùng có th vào trang :
và tùy theo h u hành s dng mà ti v bn
Eclipse Classic phù hp cho mình. Sau khi ti v, vic cn làm ch là gic
va ti v và khng Eclipse. (Eclipse ch chc t).
1.3. Android SDK
17
Là gói h tr lp trình trên h u hành Android. Chúng ta có th vào trang web :
và ti v bn SDK phù hp cho mình. Công
vic cn làm tip theo là gii nén tp tin va ti v vào trong mc c
ng dn ca nó) và tit
1.4. Android ADT
t trình cm thêm (plug-in) dành cho Eclipse IDE nhm mang li các tính
nh m ng tích h xây dng các ng dng trên h u hành
Android. Công vic tip theo là tin hành ti v t trình cm thêm này vào
t xong, chúng ta khng li Eclipse và chn menu Window
>> Android SDK and AVD Manager . Khi ca s mi hin ra thì chúng ta s u
vào tt c các Packages hin có và tit xong, chúng ta
s dng.
2 Kỹ thuật lập trình với các điều khiển
2.1. ListView
2.1.1. Yêu cầu đặt ra
S du khin ListView xây dng giao din hin th chi tit l
tin vn chuyn s :
Hình 2.1 - Giao diu khin ListView
18
2.1.2. Giải quyết
thc hic yêu cu trên, chúng ta s thc hic chính sau:
c 1: xây dng lp tha k t lp BaseAdapter và np chng các hàm
thc hin vic gn kt d liu
khin ListView.
c 2: xây dng mt lp tha k t l hin th
ListView. Thông qua hàm setListAdapt d liu và hin th lên ListView. Ngoài
thit lp x lý khi chn mt mc tin, ta dùng hàm onListItemClick(). Chi tit xin
xem thêm trong phn Ph lc mc 1.1.
2.2. GridView
2.2.1. Yêu cầu đặt ra
S du khin GridView xây dng giao din màn hình ca ng d
Hình 2.2 - Giao diu khin GridView
2.2.2. Giải quyết
thc hic yêu cu trên, chúng ta s thc hic chính sau :
19
c 1: xây dng lp tha k t lp BaseAdapter và np chng các hàm
thc hin vic gn kt d liu
khin GridView.
c 2: xây dng mt lp tha k t l hin th GridView.
d liu và hin th lên G thit lp
x lý khi chn mt mc tin, ta thit lp setOnItemClickListener() cho GridView và hin
thc hàm onItemClick(). Chi tit xin xem thêm trong phn Ph lc mc 1.2.
2.3. Spinner View, DatePicker
2.3.1. Yêu cầu đặt ra
S du khin Spinner và DatePicker xây dng giao din tra cu thông tin tàu,
i dùng chn ngày tra cu, hp thoi DatePicker s c hin th cho phép
thit lp ngày tháng và chn, lon, hãng vn chuyn qua
Spinner. Giao di gi:
Hình 2.3 - Giao din minh ha Spinner View
2.3.2. Giải quyết
20
thc hic yêu cu trên, chúng ta s thc hic sau :
n cho màn hình trong tp XML
c 2: to lp k tha t l thit lp hin th và x lý cho
Spinner, DatePicker. Gn kt d liu khin Spinner bng cách to mt th hin
ca l th hin th hp thoi
DatePicker ta cn np chng hàm onCreateDialog(). Thông tin ngày tháng khi cp nht
trong hp thoc x ly thông tin
c chn. Chi tit xin xem thêm trong phn Ph lc mc 1.3
2.4. TabHost View
2.4.1. Yêu cầu đặt ra
S du khin TabHost c tùy chnh xây dng chi
dùng tùy chn Tab hin th theo tng m dng trong ng di dùng
nhn vào tng mc trong Tab thì giao din s i cho phù hp vi tng loi
Hình 2.4 - Giao diu khin TabHost
21
2.4.2. Giải quyết
thc hic yêu cu trên, chúng ta s thc hic sau :
nh n tab trong t o mt lp
tha k t l hin th giao di
u khin
TabHost. Ta có th ch nh ni dung hin th và bing hình n) ca tab
lt thông qua hàm setContent() và setIndicator().
c 3: s dng ln màn hình tra cu thông tàu, xe
liên kt vu khin TabHost. Chi tit xin xem thêm trong
phn Ph lc mc 1.4.
2.5. Gallery và ImageView
2.5.1. Yêu cầu đặt ra
S d u khin Gallery và ImageView xây dng ch i
dùng xem danh sách hình n vn chuyi dùng chn các mc
hình c hin th kích c l trên ImageView.
Giao di
Hình 2.5 - Giao diu khin Gallery và ImageView
22
2.5.2. Giải quyết
thc hic yêu cu trên, chúng ta s thc hic chính sau :
c 1: xây dng lp tha k t lp BaseAdapter và np chng các hàm
thc hin vic gn kt hình u
khin Gallery.
c 2: xây dng mt lp tha k t l hin th Gallery.
Thông qua hàm setAdapter() hình nh và hin th thit lp x
lý khi chn mt mc hình nh ta thit lp hàm setOnItemClickListener() cho Gallery và
hin thc hàm onItemClick(). Chi tit xin xem thêm trong phn Ph lc mc 1.5
3 Kỹ thuật lập trình với SQLite
3.1. Giới thiệu
Trong Android thì h d lic s d thng mã
ngun m c s dng rng rãi trong các ng dng (Mozilla Firefox s d
tr các thông tin v cu hình, iPhone d d liu SQLite). d
lic nhúng trong Android, s dng ít b nh. N d liu t c thì ta s
ch vic assets ca d c hin vic sao chép tp tin d
liu t v c /data/data/package_name/databases/ trên thit b (
package_
)ng hp mun t d liu bng mã
thm chy ng d
To mt lp tha k t m d liu, qun lý
vic t d lin ca nó thông qua các hàm onCreate(), open(),
close() và onUpgrade(). Ngoài ra trong lp này, ta có th
vic thêm, xóa, s d liu. Mt s ng dùng ca lp
SQLiteOpenHelper
onCreate() tham s truyng thuc lp SQLiteDatabase,
t d liu (n.
23
onUpgrade() có 3 tham s truyn vào lng thuc lp
SQLiteDatabase, s ch phiên b ch phiên bn mi c d lic dùng
cp nh d liu.
getReadableDatabase() tr v m
m m d liu (ch c, không ghi).
getWriteableDatabase() tr v m
m m d liu (cho phép ghi).
thc hin vic truy vn, thêm, xóa, sa d liu ta dùng lp SQLiteDatabase. Mt
s ng dùng ca lp này :
Hàm query() có 7 tham s lt và kt qu tr v ng Cursor.
Ta cn dùng mt s t trên dòng d limo dch chuyn
n dòng cun dòng tip theo
dòng hin tc dòng hin ti, getCount() ly s ng
dòng.
7 :
- String table: tên ca bng s c thc hin truy vn.
- String[] columns: danh sách các ct cn ly. N ly tt c
các ct.
- String u kin lc. N ly tt c.
- String[] selectionArgs : danh sách các giá tr thay th
trong tham s selection.
- u kinh d
GROUP BY trong SQL.
- iu kin lnh dng
HAVING trong SQL.
- String orderBy: sp xnh d ORDER
BY trong SQL.
Hàm insert() có 3 tham s và giá tr tr v là mã ca dòng mi nht
c chèn, nu tht bi tr v -1.
- String table: bng cn chèn d liu.
- t
cho phép thêm mt hàng trng vào mà không bit ít nht tên ca mt ct. Nu tham s
24
values là rng s ng hp này, ta có th gii quyt
bng cách truyn tên mt c.
- ContentValue values: giá tr dng c.
Hàm update() có 4 tham s và giá tr tr v là s c cp nht
- String table: bng cn cp nht.
- ContentValues values: (column_name, value).
- u kip nht, null s cp nht tt
c các dòng.
- String[] whereArgs: các tham s trong whereClause.
Hàm delete() có 3 tham s và giá tr tr v là s c xóa.
- String table: bng cn xóa.
- String whereClause: null nu xóa tt c các dòng.
- String[] whereArgs: các tham s cho whereClause.
3.2. Ví dụ minh họa
3.2.1. Đặt vấn đề
Ta s xây dng mt ví d minh ha các thao tác truy vn, thêm, xóa, sa vi SQLite.
Giao di :
Hình 3.1 - Giao din ng dng minh ha SQLite