luanvanfinal - nhom1
Post on 05-Apr-2018
219 Views
Preview:
TRANSCRIPT
-
7/31/2019 LuanVanFinal - Nhom1
1/165
TRNG I HC S PHM TPHCM
KHOA CNG NGH THNG TIN
L ANH TON
TRN CNG MINH
XY DNG NG DNG
TRA CU TU, XE TRN
HIU HNH ANDROID
KHA LUN TT NGHIP
TP.H CH MINH -NM 2012
-
7/31/2019 LuanVanFinal - Nhom1
2/165
1
TRNG I HC S PHM TPHCM
KHOA CNG NGH THNG TIN
L ANH TON
TRN CNG MINH
XY DNG NG DNG
TRA CU TU, XE TRN
HIU HNH ANDROID
CHUYN NGNH: CNG NGH PHN MM
KHA LUN TT NGHIP
NGI HNG DN KHOA HC: TS. TRN NGC BO
-
7/31/2019 LuanVanFinal - Nhom1
3/165
2
LI CM N
Trong thi gian thc hin lun vn, di shng dn ca Khoa Cng Ngh Thng
Tin Trng i Hc S Phm Tp.HCM v c bit l shng dn ca thy Trn Ngc
Bo, chng em hon thnh lun vn vi thi gian nh d kin. C c kt quy
chng em xin chn thnh gi li cm n n :
Thy Trn Ngc Bo Trng phng Cng Ngh Thng Tin Trngi hc S Phm Tp.HCM tn tnh hng dn, gip chng em nh hng v phttrin lun vn tt nghip. Sgip v hng dn nhit tnh ca thy gip chng em
cng c kin thc v hon thnh tt lun vn tt nghip. Chng em xin chn thnh cm
n thy.
Qu thy c Khoa Cng Ngh Thng Tin Trng i hc S PhmTp.HCM ni ring v cc thy c Trng i Hc S Phm ni chung tn tnh hng
dn dy bo, gip chng em trang b nhng kin thc qu bu trong sut thi gian hc tp
v nghin cu.
D rt c gng v lin tc nng cao kin thc, nhng ti vn khng th trnh
nhng sai st v hn ch. Do chng em rt mong nhn c s thng cm v kin
ch bo chng em c th hon thin nhng sai st m chng em mc phi. Mt ln
na, chng em xin chn thnh cm n.
Nhm sinh vin thc hin
L Anh TonTrn Cng Minh
-
7/31/2019 LuanVanFinal - Nhom1
4/165
3
MC LC
Bng cc thut ng v cc t vit tt ........................................................................ 8Danh mc cc bng biu ........................................................................................... 9Danh mc cc hnh nh .......................................................................................... 11L i no i u ............................................................................................................. 14PHN 1: TM HIU V K THUT LP TRNH TRN ANDROID ................ 161 Cc bc tin hnh lp trnh trong Android ............................................... 16
1.1. Java Runtime Environment (JRE) ............................................................ 161.2. Eclipse IDE.............................................................................................. 161.3. Android SDK ........................................................................................... 161.4. Android ADT........................................................................................... 17
2 K thut lp trnh vi cc iu khin .............................................................. 172.1. ListView .................................................................................................. 17
2.1.1. Yu cu t ra ..................................................................................... 172.1.2. Gii quyt ........................................................................................... 18
2.2. GridView ................................................................................................. 182.2.1. Yu cu t ra ..................................................................................... 182.2.2. Gii quyt ........................................................................................... 18
2.3. Spinner View, DatePicker ........................................................................ 192.3.1. Yu cu t ra ..................................................................................... 192.3.2. Gii quyt ........................................................................................... 19
2.4. TabHost View .......................................................................................... 202.4.1. Yu cu t ra ..................................................................................... 202.4.2. Gii quyt ........................................................................................... 21
2.5. Gallery v ImageView ............................................................................. 212.5.1. Yu cu t ra ..................................................................................... 212.5.2. Gii quyt ........................................................................................... 22
-
7/31/2019 LuanVanFinal - Nhom1
5/165
4
3 K thut lp trnh vi SQLite ......................................................................... 223.1. Gii thiu ................................................................................................. 223.2. V d minh ha ........................................................................................ 24
3.2.1. t vn ........................................................................................... 243.2.2. Gii quyt ........................................................................................... 25
4 K thut lp trnh vi Web Service ................................................................. 254.1. Dng SOAP (Simple Object Access Protocol) ......................................... 254.2. V d minh ha ........................................................................................ 26
4.2.1. t vn ........................................................................................... 264.2.2. Gii quyt ........................................................................................... 28
5 Pht audio, video trong Android ..................................................................... 285.1. Gii thiu ................................................................................................. 28
5.1.1. Pht audio ........................................................................................... 285.1.2 Pht video ............................................................................................ 30
5.2. Minh ha ................................................................................................. 315.2.1. Vn t ra ....................................................................................... 315.2.2.
Gi
i quy
t ........................................................................................... 31
PHN 2: XY DNG NG DNG TRA CU THNG TIN TU, XE ............. 326 Kin tru c ng dung va c ta yu cu ............................................................. 32
6.1. Kin tru c ng dung .................................................................................. 326.2 Cc s c t yu cu .......................................................................... 33
7 Phn tch, thit k ........................................................................................... 467.1. M hnh thc th kt hp (CDM) ............................................................. 46
7.1.1. Thc th Hang..................................................................................... 477.1.2. Thc th PhuongTien .......................................................................... 477.1.3. Thc th LoaiPhuongTien ................................................................... 477.1.4. Thc th Phim ..................................................................................... 487.1.5. Thc th HinhAnh............................................................................... 48
-
7/31/2019 LuanVanFinal - Nhom1
6/165
5
7.1.6. Thc th DiaDiem ............................................................................... 487.1.7. Thc th Tuyen ................................................................................... 487.1.8. Thc th TrungGian ............................................................................ 497.1.9. Thc th LoaiGhe ............................................................................... 497.1.10. Thc th Gia ..................................................................................... 497.1.11. Thc th DoiTuong ........................................................................... 507.1.12. Thc th KhuyenMai ........................................................................ 507.1.13. Mi kt hp ChiTietTuyen ................................................................ 507.1.14. Mi kt hp ChiTietViTri ................................................................. 51
7.2. M hnh vt l (PDM).............................................................................. 517.2.1. Bng Hang .......................................................................................... 537.2.2. Bng Phim .......................................................................................... 537.2.3. Bng LoaiPhuongTien......................................................................... 547.2.4. Bng ChiTietHang .............................................................................. 547.2.5. Bng PhuongTien ................................................................................ 547.2.6. Bng HinhAnh .................................................................................... 557.2.7.
B
ng KhuyenMai ................................................................................ 56
7.2.8. Bng Gia ............................................................................................. 567.2.9. Bng ChiTietViTri .............................................................................. 577.2.10. Bng LoaiGhe ................................................................................... 587.2.11. Bng Tuyn ....................................................................................... 587.2.12. Bng TrungGian ................................................................................ 597.2.13. Bng ChiTietTuyen ........................................................................... 607.2.14. Bng Nhom ....................................................................................... 607.2.15. Bng NguoiDung .............................................................................. 607.2.16. Bng ChucNang ................................................................................ 617.2.17. Bng ChiTietChucNang .................................................................... 61
7.3. Thit k giao din .................................................................................... 62
-
7/31/2019 LuanVanFinal - Nhom1
7/165
6
7.3.1. Giao din phn h tra cu trn nn web ............................................... 627.3.2. Giao din qun tr phn h web ........................................................... 677.3.3. Giao din phn h tra cu trn thit bdi ng .................................... 99
8 Ci t .......................................................................................................... 1098.1. Ci t phn h qun tr web .................................................................. 1098.2. Ci t phn h tra cu trn nn web ..................................................... 1098.3. Ci t phn h tra cu trn mobile ........................................................ 110
9 Tng kt ....................................................................................................... 1109.1. Kt lun ................................................................................................. 110
9.1.1. Nhng kt qut c v mt l thuyt .......................................... 1109.1.2. Nhng kt qut c v mt ng dng ......................................... 110
9.2. Hng pht trin .................................................................................... 111TI LIU THAM KHO .................................................................................... 112PH LC: M NGUN PHN MINH HA K THUT ................................ 1131 K thut lp trnh vi cc iu khin ............................................................ 113
1.1 ListView ................................................................................................ 1131.1.1
Xy d
ng giao di
n ............................................................................ 113
1.1.2 Xy dng x l .................................................................................. 115
1.2 GridView ............................................................................................... 1171.2.1 Xy dng giao din ............................................................................ 1171.2.2 Xy dng x l .................................................................................. 118
1.3 Spinner View, DatePicker ...................................................................... 1211.3.1 Xy dng giao din ............................................................................ 1215.3.2. Xy dng x l ................................................................................. 123
1.4 TabHost View ........................................................................................ 1261.4.1 Xy dng giao din ............................................................................ 1261.4.2 Xy dng x l .................................................................................. 128
1.5 Gallery v ImageView .......................................................................... 128
-
7/31/2019 LuanVanFinal - Nhom1
8/165
7
1.5.1 Xy dng giao din ............................................................................ 1281.5.2 Xy dng x l .................................................................................. 129
2 K thut lp trnh vi SQLite ....................................................................... 1312.1 Xy dng giao din ................................................................................ 1312.2 Xy dng x l ...................................................................................... 136
3. K thut lp trnh vi Web Service ............................................................... 1443.1 Xy dng giao din ................................................................................ 1443.2 Xy dng x l ...................................................................................... 148
4. Demo lp trnh pht audio, video .................................................................. 1534.1 Xy dng giao din ................................................................................ 1534.2 Xy dng x l ...................................................................................... 155
-
7/31/2019 LuanVanFinal - Nhom1
9/165
8
Bngcc thut ng v cctvittt
K hiu Din giiADT ADT - Android Development Tools, b cng c
h trcho phn mm Eclipse trong vic pht trin ngdng Android
Android Hiu hnh trnin thoi di ng pht trin biGoogle v da trn nn tng Linux
AVD Manager Giao din qun l cu hnh thit b Android o3G Mng 3G l th h th ba ca chun cng ngh
in thoi di ng, cho php truyn c d liu thoi vd liu ngoi thoi (ti d liu, gi email, tin nhnnhanh, hnh nh...)
HTML HTML - Hyper Text Markup Language, l ngn
ngnh du siu vn bn c thit kra to nncc trang web
IDE IDE - Integrated Development Environment, cngi l mi trng pht trin tch hp
iOS H iu hnh trn cc thit b di ng ca hngApple
Java RuntimeEnvironment
L thnh phn ca b cng c pht trin, h trpht trin ng dng Java
KSOAP2 Th vin h trgi Web Service dng SOAP trnAndroid
SD Card Mt dng th nhca thit bdi ngSDK SDK - Software Development Kit l b cng c
pht trin ng dng phn mmSOAP SOAP Simple Object Access Protocol, m tiu
chun ca W3C, l giao thc s dng XML nhngha d liu dng thun vn bn thng qua giao thcHTTP
URL URL - Uniform Resource Locator, c dng tham chiu ti ti nguyn trn mng Internet.
Web Service Mt tp hp cc phng thc c gi thc hin
t xa thng qua mt a chWindow Service Windows service l mt ng dng chy trn my
server hoc workstation v cung cp nhng chc nngm s din tin ca n khng cn stng tc trc tipca ngi dng
http://vi.wikipedia.org/wiki/%C4%90i%E1%BB%87n_tho%E1%BA%A1i_di_%C4%91%E1%BB%99nghttp://vi.wikipedia.org/wiki/%C4%90i%E1%BB%87n_tho%E1%BA%A1i_di_%C4%91%E1%BB%99nghttp://vi.wikipedia.org/wiki/%C4%90i%E1%BB%87n_tho%E1%BA%A1i_di_%C4%91%E1%BB%99nghttp://vi.wikipedia.org/wiki/%C4%90i%E1%BB%87n_tho%E1%BA%A1i_di_%C4%91%E1%BB%99nghttp://vi.wikipedia.org/wiki/%C4%90i%E1%BB%87n_tho%E1%BA%A1i_di_%C4%91%E1%BB%99nghttp://vi.wikipedia.org/wiki/Googlehttp://vi.wikipedia.org/wiki/Linuxhttp://vi.wikipedia.org/wiki/%C4%90i%E1%BB%87n_tho%E1%BA%A1i_di_%C4%91%E1%BB%99nghttp://vi.wikipedia.org/wiki/%C4%90i%E1%BB%87n_tho%E1%BA%A1i_di_%C4%91%E1%BB%99nghttp://vi.wikipedia.org/wiki/%C4%90i%E1%BB%87n_tho%E1%BA%A1i_di_%C4%91%E1%BB%99nghttp://vi.wikipedia.org/wiki/%C4%90i%E1%BB%87n_tho%E1%BA%A1i_di_%C4%91%E1%BB%99nghttp://vi.wikipedia.org/wiki/Emailhttp://vi.wikipedia.org/wiki/Tin_nh%E1%BA%AFn_nhanhhttp://vi.wikipedia.org/wiki/Tin_nh%E1%BA%AFn_nhanhhttp://vi.wikipedia.org/wiki/Tin_nh%E1%BA%AFn_nhanhhttp://vi.wikipedia.org/wiki/Tin_nh%E1%BA%AFn_nhanhhttp://vi.wikipedia.org/wiki/Trang_webhttp://vi.wikipedia.org/w/index.php?title=H%E1%BB%87_%C4%91i%E1%BB%81u_h%C3%A0nh_tr%C3%AAn_c%C3%A1c_thi%E1%BA%BFt_b%E1%BB%8B_di_%C4%91%E1%BB%99ng&action=edit&redlink=1http://vi.wikipedia.org/w/index.php?title=H%E1%BB%87_%C4%91i%E1%BB%81u_h%C3%A0nh_tr%C3%AAn_c%C3%A1c_thi%E1%BA%BFt_b%E1%BB%8B_di_%C4%91%E1%BB%99ng&action=edit&redlink=1http://vi.wikipedia.org/w/index.php?title=H%E1%BB%87_%C4%91i%E1%BB%81u_h%C3%A0nh_tr%C3%AAn_c%C3%A1c_thi%E1%BA%BFt_b%E1%BB%8B_di_%C4%91%E1%BB%99ng&action=edit&redlink=1http://vi.wikipedia.org/w/index.php?title=H%E1%BB%87_%C4%91i%E1%BB%81u_h%C3%A0nh_tr%C3%AAn_c%C3%A1c_thi%E1%BA%BFt_b%E1%BB%8B_di_%C4%91%E1%BB%99ng&action=edit&redlink=1http://vi.wikipedia.org/w/index.php?title=H%E1%BB%87_%C4%91i%E1%BB%81u_h%C3%A0nh_tr%C3%AAn_c%C3%A1c_thi%E1%BA%BFt_b%E1%BB%8B_di_%C4%91%E1%BB%99ng&action=edit&redlink=1http://vi.wikipedia.org/w/index.php?title=H%E1%BB%87_%C4%91i%E1%BB%81u_h%C3%A0nh_tr%C3%AAn_c%C3%A1c_thi%E1%BA%BFt_b%E1%BB%8B_di_%C4%91%E1%BB%99ng&action=edit&redlink=1http://vi.wikipedia.org/w/index.php?title=H%E1%BB%87_%C4%91i%E1%BB%81u_h%C3%A0nh_tr%C3%AAn_c%C3%A1c_thi%E1%BA%BFt_b%E1%BB%8B_di_%C4%91%E1%BB%99ng&action=edit&redlink=1http://vi.wikipedia.org/w/index.php?title=H%E1%BB%87_%C4%91i%E1%BB%81u_h%C3%A0nh_tr%C3%AAn_c%C3%A1c_thi%E1%BA%BFt_b%E1%BB%8B_di_%C4%91%E1%BB%99ng&action=edit&redlink=1http://vi.wikipedia.org/w/index.php?title=H%E1%BB%87_%C4%91i%E1%BB%81u_h%C3%A0nh_tr%C3%AAn_c%C3%A1c_thi%E1%BA%BFt_b%E1%BB%8B_di_%C4%91%E1%BB%99ng&action=edit&redlink=1http://vi.wikipedia.org/w/index.php?title=H%E1%BB%87_%C4%91i%E1%BB%81u_h%C3%A0nh_tr%C3%AAn_c%C3%A1c_thi%E1%BA%BFt_b%E1%BB%8B_di_%C4%91%E1%BB%99ng&action=edit&redlink=1http://vi.wikipedia.org/w/index.php?title=H%E1%BB%87_%C4%91i%E1%BB%81u_h%C3%A0nh_tr%C3%AAn_c%C3%A1c_thi%E1%BA%BFt_b%E1%BB%8B_di_%C4%91%E1%BB%99ng&action=edit&redlink=1http://vi.wikipedia.org/wiki/Applehttp://vi.wikipedia.org/wiki/Applehttp://vi.wikipedia.org/wiki/Internethttp://vi.wikipedia.org/wiki/Internethttp://vi.wikipedia.org/wiki/Applehttp://vi.wikipedia.org/w/index.php?title=H%E1%BB%87_%C4%91i%E1%BB%81u_h%C3%A0nh_tr%C3%AAn_c%C3%A1c_thi%E1%BA%BFt_b%E1%BB%8B_di_%C4%91%E1%BB%99ng&action=edit&redlink=1http://vi.wikipedia.org/wiki/Trang_webhttp://vi.wikipedia.org/wiki/Tin_nh%E1%BA%AFn_nhanhhttp://vi.wikipedia.org/wiki/Tin_nh%E1%BA%AFn_nhanhhttp://vi.wikipedia.org/wiki/Emailhttp://vi.wikipedia.org/wiki/%C4%90i%E1%BB%87n_tho%E1%BA%A1i_di_%C4%91%E1%BB%99nghttp://vi.wikipedia.org/wiki/Linuxhttp://vi.wikipedia.org/wiki/Googlehttp://vi.wikipedia.org/wiki/%C4%90i%E1%BB%87n_tho%E1%BA%A1i_di_%C4%91%E1%BB%99ng -
7/31/2019 LuanVanFinal - Nhom1
10/165
9
Danh mc cc bng biu
Bng 6.1 - c t use case tra cu gitu, xe ......................................................... 34Bng 6.2 - c t use case tra cu hnh trnh tu, xe .............................................. 35
Bng 6.3 - c t use case tra cu gi v tu, xe..................................................... 36Bng 6.4 - c t use case gi t v tu, xe .......................................................... 36Bng 6.5 - c t use case chia s thng tin kt qu tra cu ................................... 37Bng 6.6 - c tuse case xem lc s tra cu ...................................................... 37Bng 6.7 - c tuse case ng nhp ..................................................................... 39Bng 6.8 - c t use case nhp liu ....................................................................... 39Bng 6.9 - c t use case phn quyn ................................................................... 40Bng 7.1 - M t thc th Hang .............................................................................. 47Bng 7.2 - M t thc th PhuongTien ................................................................... 47Bng 7.3 - M t thc th LoaiPhuongTien ............................................................ 47Bng 7.4 - M t thc th Phim ............................................................................. 48Bng 7.5 - M t thc th HinhAnh ........................................................................ 48Bng 7.6 - M t thc th DiaDiem ........................................................................ 48Bng 7.7 - M t thc th Tuyen ............................................................................ 49Bng 7.8 - M t thc th TrungGian ..................................................................... 49Bng 7.9 - M t thc th LoaiGhe........................................................................ 49Bng 7.10 - M t thc th Gia............................................................................... 50Bng 7.11 - M t thc th DoiTuong .................................................................... 50Bng 7.12 - M t thc th KhuyenMai .................................................................. 50Bng 7.13 - M t thc th ChiTietTuyen .............................................................. 50Bng 7.14 - M t thc th ChiTietViTri ............................................................... 51Bng 7.15 - M t bng Hang ................................................................................ 53Bng 7.16 - M t bng Phim ................................................................................. 53Bng 7.17 - M t bng LoaiPhuongTien ............................................................... 54
-
7/31/2019 LuanVanFinal - Nhom1
11/165
10
Bng 7.18 - M t bng ChiTietHang ..................................................................... 54Bng 7.19 - M t bng PhuongTien ..................................................................... 54Bng 7.20 - M t bng HinhAnh ........................................................................... 55Bng 7.21 - M t bng KhuyenMai ....................................................................... 56Bng 7.22 - M t bng Gia.................................................................................... 56Bng 7.23 - M t bng ChiTietViTri ..................................................................... 57Bng 7.24 - M t bng LoaiGhe ............................................................................ 58Bng 7.25 - M t bng Tuyen ............................................................................... 58Bng 7.26 - M t bng TrungGian ........................................................................ 59Bng 7.27 - M t bng ChiTietTuyen ................................................................... 60Bng 7.28 - M t bng Nhom ............................................................................... 60Bng 7.29 - M t bng NguoiDung ....................................................................... 60Bng 7.30 - M t bng ChucNang......................................................................... 61Bng 7.31 - M t bng ChiTietChucNang ............................................................. 61
-
7/31/2019 LuanVanFinal - Nhom1
12/165
11
Danh mc cc hnh nh
Hnh 2.1 - Giao din iu khin ListView .............................................................. 17Hnh 2.2 - Giao din iu khin GridView ............................................................. 18
Hnh 2.3 - Giao din minh ha Spinner View va Datepicker................................... 19Hnh 2.4 - Giao din iu khin TabHost ............................................................... 20Hnh 2.5 - Giao din iu khin Gallery v ImageView.......................................... 21Hnh 3.1 - Giao din ng dng minh ha SQLite .................................................... 24Hnh 4.1 - Minh ha kt qu sau khi gi web service .............................................. 27Hnh 4.2 - M hnh kt ni gi Web Service va giao din minh hoa ........................ 27Hnh 4.3 - Hnh minh ha vic chn th vin KSOAP2 vo ng dng .................... 28Hnh 5.1 - Minh hapht t p tin video v audio ..................................................... 31Hnh 6.1 - Kin trc ng dng tra cu thng tin tu xe ........................................... 32Hnh 6.2 - S use case ca ngi dng cui....................................................... 34Hnh 6.3 - S use case ca ngi qun tr h thng tu, xe ................................ 38Hnh 6.4 - Quy trnh x l nghip v tra cu gitu, xe trn thit bdi ng ........ 41Hnh 6.5 - Quy trnh x l nghip v tra cu l trnh tu, xe trn thit bdi ng .. 41Hnh 6.6 - Quy trnh x l nghip v tra cu gi v tu, xe trn thit bdi ng .... 42Hnh 6.7 - Quy trnh x l nghip v tra cu trn nn web ..................................... 43Hnh 6.8 - Quy trnh x l nghip v nhp liu trn web server ............................. 44Hnh 6.9 - Quy trnh x l nghip v phn quyn .................................................. 45Hnh 7.1 - S CDM ........................................................................................... 46Hnh 7.2 - S vt l PDM .................................................................................. 52Hnh 7.3 - Giao din trang tra cu .......................................................................... 62Hnh 7.4 - Giao din kt qu khi khng cung cp loi phng tin v hng ........... 63Hnh 7.5 - Giao din kt qu tra cu khi cung cp thng tin hng vn chuyn ........ 63Hnh 7.6 - Giao din kt qu tra cu khi cung cp thng tin loi phng tin ......... 64Hnh 7.7 - Giao din kt qu khi cung cp loi phng tin v hng ...................... 64
-
7/31/2019 LuanVanFinal - Nhom1
13/165
12
Hnh 7.8 - Giao din thng tin l trnh ca tuyn .................................................... 65Hnh 7.9 - Giao din thng tin gi v trn cc trm ca tuyn ................................. 66Hnh 7.10 - Giao din thng tin gi v gia cc trm ca tuyn .............................. 66Hnh 7.11 - Giao din th hin hnh nh ca phng tin ....................................... 67Hnh 7.12 - Giao din mn hnh ng nhp............................................................. 67Hnh 7.13 - Activity biu din Use case ng nhp ................................................. 68Hnh 7.14Giao din mn hnh chnh ca trang qun tr ....................................... 69Hnh 7.15 - Giao din mn hnh qun l phng tin dnh cho nhn vin h thng 69Hnh 7.16 - Activity biu din use case nhp liu ................................................... 70Hnh 7.17 - Giao din mn hnh qun l phng tin cho cc i tng khc......... 71Hnh 7.18 - Activity biu din use case nhp liu ................................................... 72Hnh 7.19 - Giao din qun l tuyn i vi nhn vin nhp liu h thng ............. 73Hnh 7.20 - Activity biu din use case nhp liu ................................................... 74Hnh 7.21 - Giao din qun l tuyn i vi cc i tng khc ............................. 75Hnh 7.22 - Activity biu din use case nhp liu ................................................... 76Hnh 7.23 - Giao din qun l hng i vi nhn vin nhp liu h thng .............. 77Hnh 7.24 - Activity bi
u di
n use case nh
p li
u ................................................... 78
Hnh 7.25 - Giao din qun l hng i vi cc i tng khc .............................. 79Hnh 7.26 - Activity biu din use case nhp liu ................................................... 80Hnh 7.27 - Giao din qun l ti khon i vi nhn vin nhp liu h thng........ 81Hnh 7.28 - Activity biu din use case nhp liu ................................................... 82Hnh 7.29 - Giao din qun l ti khon i vi cc nhm i tng khc ............. 83Hnh 7.30 - Activity biu din use case nhp liu ................................................... 84Hnh 7.31 - Giao din qun l nhm ngi dng .................................................... 85Hnh 7.32 - Activity biu din use case nhp liu ................................................... 86Hnh 7.33 - Giao din danh mc a im .............................................................. 87Hnh 7.34 - Activity biu din use case nhp li ..................................................... 88Hnh 7.35 - Giao din danh mc hnh nh i vi nhn vin h thng .................... 89
-
7/31/2019 LuanVanFinal - Nhom1
14/165
13
Hnh 7.36 - Activity biu din use case nhp liu ................................................... 90Hnh 7.37 - Giao din danh mc hnh nh i vi cc i tng khc .................... 91Hnh 7.38 - Activity biu din use case nhp liu ................................................... 92Hnh 7.39 - Giao din danh mc phim i vi nhn vin h thng ......................... 93Hnh 7.40 - Activity biu din use case nhp liu ................................................... 94Hnh 7.41 - Giao din danh mc phim i vi cc i tng khc .......................... 95Hnh 7.42 - Activity biu din use case nhp liu ................................................... 96Hnh 7.43 - Giao din danh mc loi gh................................................................ 96Hnh 7.44 - Giao din danh mc i tng ............................................................. 97Hnh 7.45 - Giao din danh mc loi phng tin .................................................. 97Hnh 7.46 - Giao din danh mc khuyn mi .......................................................... 98Hnh 7.47 - Giao din danh mc nhm chc nng .................................................. 98Hnh 7.48 - Giao din mn hnh chnh ng dng .................................................... 99Hnh 7.49 - Giao din mn hnh lc s tra cu ..................................................... 99Hnh 7.50 - Activity biu din use case lc s tra cu ........................................ 100Hnh 7.51 - Giao din mn hnh Gii thiu ........................................................... 101Hnh 7.52
Giao di
n mn hnh hng d
n s
d
ng ............................................ 101
Hnh 7.53Giao din mn hnh tra cu ............................................................... 102Hnh 7.54 - Activity biu din Use case tra cu tu, xe......................................... 103Hnh 7.55 - Giao din mn hnh danh sch phng tin........................................ 104Hnh 7.56 - Giao din mn hnh th hin gichy tu, xe ..................................... 104Hnh 7.57 - Activity biu din Use case xem gichy tu, xe .............................. 105Hnh 7.58 - Giao din mn hnh th hin l trnh .................................................. 106Hnh 7.59 - Activity biu din Use case xem l trnh tu, xe ................................ 106Hnh 7.60 - Giao din mn hnh th hin gi v .................................................... 107Hnh 7.61 - Activity biu din Use case xem gi v tu, xe .................................. 108Hnh 7.62 - Giao din mn hnh th hin l trnh trn bn ................................ 109
-
7/31/2019 LuanVanFinal - Nhom1
15/165
14
L i ni u
Ngy nay khi cc thit b cm tay trnn ph bin, cng nh s pht trin ln mnh
ca cc h thng vin thng lm cho cc dch v phc v nhu cu con ngi trn thit b
cm tay ngy cng ph bin. c bit l cc dch v tra cu trc tuyn trn thit b cm
tay, n c don l rt pht trin khi m cng ngh mng 3G ang c pht trin
mt cch rng ri, em li cho ngi dng tc truyn ti d liu rt nhanh. Cng vi
l sra i ca hiu hnh m ngun mAndroid c khnng ty bin cao, c th
coi y l mt bc tin trong lnh vc cng ngh.Theo comScore, thtrng in thoi thng minh M thi gian gn y c nhiu du
hiu cho thy hiu hnh Android ca Google ch ng hon ton hiu hnh iOS
ca Apple v BlackBerry ca RIM. Chtrong qu u tin ca nm 2011, c n 69,5
triu ngi M s dng loi in thoi ny, tng 13% so vi cuc kho st tng t kt
thc vo thng 11/2010. 33% sngi dng in thoi tui t 13 trln tham gia cuc
kho st cho bit h thch h iu hnh Android, 28,9% thch cc dng in thoi
BlackBerry ca RIM, trong khi ch c 25,2% ngi s dng chn cc sn phm caApple. Vi nhng con s ni ln s pht trin vt bc, tnh u vit v tim nng
pht trin ca hiu hnh Android ln n mc no.
Khi nhu cu thng tin ngy cng pht trin, ngi dng s mun truy cp hoc tm
kim thng tin mi lc, mi ni. Khng phi lc no ngi dng cng c th s dng
laptop hay desktop tm kim thng tin. Hn na, ngy nay in thoi thng minh y
chc nng, cu hnh cao, c gi thnh rv ngy cng c ph bin. Do vic xy
dng cc ng dng trn thit bdi ng s trthnh mt ngnh cng nghip ha hn s ctc pht trin nhanh trong nhng nm ti.
Dn s trung bnh cnc nm 2011 c tnh 87,84 triu ngi (Tng cc Thng
k), nhu cu i li vo cc dp l, tt thng rt ln. Do nhu cu thng tin v gi v
-
7/31/2019 LuanVanFinal - Nhom1
16/165
-
7/31/2019 LuanVanFinal - Nhom1
17/165
16
N i Dung Lun Vn
PHN 1: TM HIU V K THUT LP TRNH TRN
ANDROID
1 Cc bc tin hnh lp trnh trong AndroidKhng ging nh iOS, SDK chy hiu hnh Android c th hot ng c trn
hu ht cc nn tng t Windows, Linux v Mac. Do vy, hu ht cc hiu hnh v cu
hnh my tnh hin nay u c th ti v v s dng c b cng c lp trnh lp trnh
ny. Thm na, cc nn tng v cc b cng c lp trnh ca Android u min ph. Do cc nh pht trin c th ti v trc tip cc b cng c lp trnh ny trn trang ch ca
ngi pht hnh. c th bt u lp trnh trn hiu hnh Android, mt s phn
mm sau s cn phi c ci t :
1.1.Java Runtime Environment (JRE)B JRE gip lm nn tng chy cc ng dng trn hiu hnh Android. Ti thi
im hin ti th b Java Platform mi nht l JRE 7. Chng ta c th vo trang
http://www.oracle.com/technetwork/java ti v v ci t vo my. Nn ci t theo
ng dn mc nh m phn mm gi trnh nhng kh khn khi tham chiu n
cc th mc sau ny khi lp trnh.
1.2.Eclipse IDEL mi trng h tr lp trnh Java rt tt v tin li. Ti thi im ny th bn
Eclipse mi nht l phin bn INDIGO. Ngi dng c th vo trang :
http://www.eclipse.org/downloads/ v ty theo h iu hnh s dng m ti v bn
Eclipse Classic ph hp cho mnh. Sau khi ti v, vic cn lm ch l gii nn th mc
va ti v v khi ng Eclipse. (Eclipse ch chy c khi JDK ci t).
1.3.Android SDK
http://www.oracle.com/technetwork/javahttp://www.oracle.com/technetwork/javahttp://www.eclipse.org/downloads/http://www.eclipse.org/downloads/http://www.eclipse.org/downloads/http://www.oracle.com/technetwork/java -
7/31/2019 LuanVanFinal - Nhom1
18/165
17
L gi h trlp trnh trn hiu hnh Android. Chng ta c th vo trang web :
http://developer.android.com/sdk/index.htmlv ti v bn SDK ph hp cho mnh.Cng
vic cn lmtip theo l gii nn tp tin va ti v vo trong mt th mc cnh (lu
ng dn ca n) v tin hnh ci t..
1.4.Android ADTy l mt trnh cm thm (plug-in) dnh cho Eclipse IDE nhm mang li cc tnh
nng mnh m, mi trng tch hp xy dng cc ng dng trn h iu hnh
Android. Cng vic tip theo l tin hnh ti v v ci t trnh cm thm ny vo
Eclipse. Sau khi ci t xong, chng ta khi ng li Eclipse v chn menu Window
>> Android SDK and AVD Manager . Khi ca s mi hin ra th chng ta snh du
vo tt c cc Packages hin c v tin hnh ci t chng. Sau khi ci t xong, chng ta
c th s dng.
2 K thut lp trnh vicc iu khin2.1.ListView
2.1.1.Yu cu t raS dng iu khin ListView xy dng giao din hin th chi tit ltrnh m phng
tin vn chuyn si qua. Giao din n gin nh sau :
Hnh 2.1 - Giao din iu khin ListView
http://developer.android.com/sdk/index.htmlhttp://developer.android.com/sdk/index.htmlhttp://developer.android.com/sdk/index.html -
7/31/2019 LuanVanFinal - Nhom1
19/165
18
2.1.2.Gii quyt thc hin c yu cu trn, chng ta s thc hin theo cc bc chnh sau:
Bc 1: xy dng lp tha k t lp BaseAdapter v np chng cc hmgetCount(), getItem(), getItemId(), getView() thc hin vic gn kt d liu n iu
khin ListView.
Bc 2: xy dng mt lp tha k t lp ListActivity hin thListView. Thng qua hm setListAdapter() d liu v hin th ln ListView. Ngoi
ra, thit lp x l khi chn mt mc tin, ta dng hm onListItemClick(). Chi tit xin
xem thm trong phn Ph lc mc 1.1.
2.2.GridView
2.2.1.Yu cu t raS dng iu khin GridView xy dng giao din mn hnh ca ng dng nh sau:
Hnh 2.2 - Giao din iu khin GridView
2.2.2.Gii quyt thc hin c yu cu trn, chng ta s thc hin theo cc bc chnh sau :
-
7/31/2019 LuanVanFinal - Nhom1
20/165
19
Bc 1: xy dng lp tha k t lp BaseAdapter v np chng cc hmgetCount(), getItem(), getItemId(), getView() thc hin vic gn kt d liu n iu
khin GridView.
Bc 2: xy dng mt lp tha k t lp Activity hin th GridView.Thng qua hm setAdapter() d liu v hin th ln GridView. Ngoi ra, thit lp
x l khi chn mt mc tin, ta thit lp setOnItemClickListener() cho GridView v hin
thc hm onItemClick(). Chi tit xin xem thm trong phn Ph lc mc 1.2.
2.3.Spinner View, DatePicker2.3.1.Yu cu t ra
S dng iu khin Spinner v DatePicker xy dng giao din tra cu thng tin tu,xe. Khi ngi dng chn ngy tra cu, hp thoi DatePicker sc hin th cho php
thit lp ngy thng v chn im i, im n, loi phng tin, hng vn chuyn qua
Spinner. Giao din n gin nh sau:
Hnh 2.3 - Giao din minh ha Spinner View v Datepicker
2.3.2.Gii quyt
-
7/31/2019 LuanVanFinal - Nhom1
21/165
20
thc hin c yu cu trn, chng ta s thc hin theo cc bc chnh sau :
Bc 1: nh ngha giao din cho mn hnh trong tp XML Bc 2: to lp k tha t lp Activity thit lp hin th v x l cho
Spinner, DatePicker. Gn kt d liu ln iu khin Spinner bng cch to mt th hin
ca lp ArrayAdapter, sau gi hm setAdapter() thc thi. hin th hp thoi
DatePicker ta cn np chng hm onCreateDialog(). Thng tin ngy thng khi cp nht
trong hp thoi c x l thng qua hm onDateSet(), tai y ta c th ly thng tin
ngy thng c chn. Chi tit xin xem thm trong phn Ph lc mc 1.3
2.4.TabHost View2.4.1.
Yu cu t ra
S dng iu khin TabHost c ty chnh xy dng chc nng cho php ngi
dng ty chn Tab hin th theo tng mc ch s dng trong ng dng. Khi ngi dng
nhn vo tng mc trong Tab th giao din sc thay i cho ph hp vi tng loi
Tab nh hnh sau :
Hnh 2.4 - Giao din iu khin TabHost
-
7/31/2019 LuanVanFinal - Nhom1
22/165
21
2.4.2.Gii quyt thc hin c yu cu trn, chng ta s thc hin theo cc bc chnh sau :
Bc 1: nh ngha giao din tab trong tp XML. Sau to mt lptha k t lp TabActivity hin th giao din nh ngha.
Bc 2: thng qua hm addTab() thm cc tab vo iu khinTabHost. Ta c th chnh ni dung hin th v biu tng hnh nh (vn bn) ca tab
ln lt thng qua hm setContent() v setIndicator().
Bc 3: s dng lp nh ngha giao din mn hnh tra cu thng tu, xe to trc lin kt vi cc tab trong iu khin TabHost. Chi tit xin xem thm trong
phn Ph lc mc 1.4.2.5.Gallery v ImageView
2.5.1.Yu cu t raS dng iu khin Gallery v ImageView xy dng chc nng cho php ngi
dng xem danh sch hnh nh phng tin vn chuyn. Khi ngi dng chn cc mc
hnh nh trong Gallery th hnh sc hin thkch c ln hn trn ImageView.
Giao din trnh by nh hnh sau :
Hnh 2.5 -Giao din iu khin Gallery v ImageView
-
7/31/2019 LuanVanFinal - Nhom1
23/165
22
2.5.2.Gii quyt thc hin c yu cu trn, chng ta s thc hin theo cc bc chnh sau :
Bc 1: xy dng lp tha k t lp BaseAdapter v np chng cc hmgetCount(), getItem(), getItemId(), getView() thc hin vic gn kt hnh nh ln iu
khin Gallery.
Bc 2: xy dng mt lp tha k t lp Activity hin th Gallery.Thng qua hm setAdapter() hnh nh v hin thln Gallery. Ngoi ra, thit lp x
l khi chn mt mc hnh nh ta thit lp hm setOnItemClickListener() cho Gallery v
hin thc hm onItemClick(). Chi tit xin xem thm trong phn Ph lc mc 1.5
3 K thut lp trnh vi SQLite3.1. Gii thiu
Trong Android th hc sd liu c s dng l SQLite, y l h thng m
ngun mc s dng rng ri trong cc ng dng (Mozilla Firefox s dng n lu
tr cc thng tin v cu hnh, iPhone cng s dng c sd liu SQLite).N l c sd
liu c nhng trong Android, s dng t b nh.Nu c c sd liu ttrc th ta s
ch vic chp n vo th mc assets ca dn, sau thc hin vic sao chp tp tin dliu t v tr trn sang th mc /data/data/package_name/databases/ trn thit b (v i
package_name la tn go i ng dung ). Trong trng hp mun to c sd liu bng m
thi im chy ng dng th ta lm nh sau:
To mt lp tha k tSQLiteOpenHelper, dng m, ng c sd liu, qun l
vic to c sd liu cng nh phin bn ca n thng qua cc hm onCreate(), open(),
close() v onUpgrade(). Ngoi ra trong lp ny, ta c thnh ngha cc hm dng cho
vic thm, xa, sa cc dng trong c s d liu. Mt s hm thng dng ca lpSQLiteOpenHelper
onCreate() tham s truyn vo l i tng thuc lp SQLiteDatabase,c dng to c sd liu (nu cha c).
-
7/31/2019 LuanVanFinal - Nhom1
24/165
23
onUpgrade() c 3 tham s truyn vo ln lt l i tng thuc lpSQLiteDatabase, s ch phin bn c, s ch phin bn mi ca c sd liu, c dng cp nht c sd liu.
getReadableDatabase() tr v mt i tng SQLiteDatabase, dng mmt c sd liu (chcho php c, khng ghi).
getWriteableDatabase() tr v mt i tng SQLiteDatabase, dng mmt c sd liu (cho php ghi).
thc hin vic truy vn, thm, xa, sa d liu ta dng lp SQLiteDatabase. Mt
shm thng dng ca lp ny :
Hm query() c 7 tham s ln lt v kt qu tr vl i tng Cursor.Ta cn dng mt shm lt trn dng d liu nh moveToFirst() dch chuyn n
dng u tin, cn moveToLast() n dng cui cng , moveToNext() n dng tip theo
dng hin ti, moveToPrevious() n dng trc dng hin ti, getCount() ly slng
dng. Danh sach 7 tham s nh sau:
- String table: tn ca bng sc thc hin truy vn.- String[] columns: danh sch cc ct cn ly. Nu null s ly tt c
cc ct.- String selection : iu kin lc. Nu null s ly tt c.- String[] selectionArgs : danh sch cc gi trdng thay th?trong tham s selection.- String groupBy: iu kin gom nhm, nh dng tng tnh
GROUP BY trong SQL.- String having: iu kin lc cho cc dng khi gom nhm, nh dng
tng tnh mnh HAVING trong SQL.- String orderBy: sp xp, nh dng tng tnh mnh ORDER
BY trong SQL.
Hm insert() c 3 tham s v gi tr tr v l m ca dng mi nhtc chn, nu tht bi tr v -1.
- String table: bng cn chn d liu.- String nullColumnHack : dng ti u, c thnull . SQL khng
cho php thm mt hng trng vo m khng bit t nht tn ca mt ct. Nu tham s
-
7/31/2019 LuanVanFinal - Nhom1
25/165
24
values l rng skhng c dng no c thm vo. Trng hp ny, ta c th gii quyt
bng cch truyn tn mt ct c php null vo nullColumnHack.
- ContentValue values: gi trdng cp {kha,gi tr}. Hm update() c 4 tham s v gi tr tr v l sdng c cp nht
- String table: bng cn cp nht.- ContentValues values: (column_name, value).- String whereClause: iu kin where cp nht, null s cp nht tt
c cc dng.
- String[] whereArgs: cc tham s trong whereClause. Hm delete() c 3 tham s v gi tr tr v l sdng c xa.
- String table: bng cn xa.- String whereClause: null nu xa tt c cc dng.- String[] whereArgs: cc tham s cho whereClause.
3.2. V d minh ha3.2.1.t vn
Ta s xy dng mt v d minh ha cc thao tc truy vn, thm, xa, sa vi SQLite.
Giao din n gin nh sau :
Hnh 3.1 - Giao din ng dng minh ha SQLite
-
7/31/2019 LuanVanFinal - Nhom1
26/165
25
3.2.2.Gii quytCc bc chnh thc hin minh ha trn nh sau:
Bc 1: xy dng lp thc hin vic to, cp nht c sd liu cng nh nh ngha
cc thao tc truy vn, thm, xa, sa. Cu trc chnh nh sau:
nh ngha tn, phin bn c sd liu cng cc ct trong bng nh ngha mt lp tha k t SQLiteOpenHelper np chng hm
onCreate() v onUpdate() phc v vic to, cp nht c sd liu
nh ngha cc hm truy vn, thm, xa, sa xin xem chi tit trong phnph lc.
Bc 2: to lp tha k tListActivity xy dng mn hnh chnh. Trong minh
ha ny, khi ngi dng n vo mc tin trong ListView th s hin th hp thoi cho php
cp nht, xa thng tin. x l khi mc tin trn ListView c chn, ta np chng hm
onListItemClick, onCreateDialog() v onPrepareDialog() hin th hp thoi. Bn cnh
, x l s kin khi ngi dng nhn vo cc iu khin Button, ta hin thc giao
din OnClickListener() x l s kin trong hm onClick().
Bc 3: to lp tha k tBaseAdapter thc hin gn kt d liu tcsd liu
ln iu khin ListView trong mn hnh chnh. Cc hm cn np chng l getCount(),
getItem(), getItemId(), getView() ln lt dng nh ngha hm ly s lng, thng tin,
nh danh (v tr), giao din hin th ca mc tin.Chi tit x in xem thm trong phn Ph
lc mc 2
4 K thut lp trnh vi Web Service4.1. Dng SOAP (Simple Object Access Protocol)
gi Web Service dng SOAP,ta s dng th vin KSOAP2. C th ti th vinny ti a ch sau :
http://www.4shared.com/file/uOhx5aoj/ksoap2-android-assembly-24-jar.html.
Trong th vin ny, vic thc hin yu cu n Web Service cng nh nhn kt qu
tr v thng thng qua lp SoapObject . C 3 tham s quan trng c yu cu : khng
http://www.4shared.com/file/uOhx5aoj/ksoap2-android-assembly-24-jar.htmlhttp://www.4shared.com/file/uOhx5aoj/ksoap2-android-assembly-24-jar.htmlhttp://www.4shared.com/file/uOhx5aoj/ksoap2-android-assembly-24-jar.html -
7/31/2019 LuanVanFinal - Nhom1
27/165
26
gian tn, tn phng thc dng, a ch URL ca Web Service. Ngoi ra, c mt
tham s m rng khc cng quan trng khng km l SOAP_ACTION, n l s kt hp
gia khng gian tn v tn phng thc bng cng thc sau:
SOAP_ACTION = NAMESPACE + METHOD_NAME
Cc bc sau s gip thc hin mt li gi Web Service vi KSOAP2 :
Bc 1: to mt i tng SoapObject vi 2 tham s truyn vo lkhng gian tn v tn phng thc (hm) ca dch v.
Bc 2: truyn cc tham scho phng thc ca Web Services (nu c)dng hm addProperty(). Hm ny c 2 tham i ln lt l tn bin cn truyn tham trv gi tr ca n.
Bc 3: to i tng SoapSerializationEnvelope chnh cc thngtin khc nh: phin bn SOAP, Web Service c da trn .NET hay khng, thit lp u racho thng ip kt qu.
Bc 4: to i tng AndroidHttpTransport, truyn vo a ch URLca Web Service cn gi.
Bc 5: thc hin li gi call() t i tng HttpTransportSE, vi 2tham s truyn vo l SOAP_ACTION v i tng SoapSerializationEnvelope to.
Bc 6:Nhn kt qu tr v thng qua i tngSoapSerializationEnvelope bng hm getResponse() khi kt qu tr v l mt kiu chuihay bng thuc tnh bodyIn khi kt qu tr v l mt kiu danh sch.
4.2. V d minh ha4.2.1. t vn
Chng ta s to mt ng dng minh ha hin th chi tit l trnh tu la bng vic
gi Web Service xy dng bng .NET (dng SOAP). Web Service ny c tham su
vo l m tuyn, im i, im n. Kt quu ra vi thng tin gm thng tin chnh nh
tn trm trn l trnh, thi gian i, thi gian n , c ly chng. V d kt qu gi Web
Service vi m tuyn l 154, im i l Si Gn, im kt thc l Nha Trang dng nh
sau:
-
7/31/2019 LuanVanFinal - Nhom1
28/165
-
7/31/2019 LuanVanFinal - Nhom1
29/165
28
4.2.2. Gii quyt Bc 1: chn th vin KSOAP2 vo ng dng. Sau khi download th
vin, ta s c mt tp c nh dng l .jar. chn th vin vo ng dng, ta ch cn
chn nhn chut phi vo tn d n ng dng, sau chn Properties>Java build
path>Libraries>Add External Jars >chn ng dn n th vin ti v>OK
Hnh 4.3 - Hnh minh ha vic chn th vin KSOAP2 vo ng dng
Bc 2: xy dng lp tha k t ListActivity hin th giao din mnhnh. Lp ny cng s hin thc giao din OnClickListener, np chng hm onClick()
x l s kin khi ngi dng n vo nt thc hin gi Web Service ly thng tin chi tit
v l trnh. Xin xem thm chi tit trong phn Ph lc mc 3.
5 Pht audio, video trong Android5.1. Gii thiu
5.1.1. Pht audio
-
7/31/2019 LuanVanFinal - Nhom1
30/165
-
7/31/2019 LuanVanFinal - Nhom1
31/165
30
Ch : khi gi hm stop() dng vic pht, nhng sau mun pht li th phi
gi ln lt cc hm reset(), prepare(), start().
5.1.2
Pht videoVic pht tp tin video phc tp hn so vi vic pht tp tin audio s dng
API ca MediaPlayer, mt phn v chng ta phi cung cp thm mt b mt hin th
video c pht. Tuy nhin, Android cung cp mt widget gi l VideoView gip gii
quyt kh khn trn. Thm na, n cn cung cp mt s ty chnh hin th ph hp vi
nhu cu ngi s dng.
Ch :
Hin nay Emulator gp phi mt s vn khi pht cc ni dung videotrn mt s my tnh v hiu hnh. Tp tin video khng thc pht khi n c t th mc raw. Do
vy, chng phi c t trong th nhSD Card ca AVD .
pht mt t p tin video, ta c thlm nh sau:
To mt th hin t lp VideoView. Dng hm setVideoURI() truyn vo ng dn URI pht cc video
trc tip mt ng dn trn mng hoc setVideoPath() truyn vo mt ng dn
video thng thng nh t th nh chng hn. pht c ng dn video trnmng, ta cn khai bo quyn android.permission.INTERNET cho php truy cp mng.
Cui cng, gi hm start() bt u pht video. thm cc chc nngiu khin nh rewind, pause, play, forward ta c th to mt th hin t lpMediaController, sau thit lp n n VideoView qua hm setMediaController().
Ngoi ra pht mt video t YouTube, ta c c th s dng i tng Intent vi
tham s ACTION_VIEW. Nu thit b ci t ng dng YouTube th ng dng ny s
c gi, ngc li trnh duyt ca thit b s hin th video. Cch s dng n gin nhsau :
startActivity(newIntent(Intent.ACTION_VIEW, Uri.parse("URL_VIDEO")));
vi URL_VIDEO l ng dn video trn youtube cn pht.
-
7/31/2019 LuanVanFinal - Nhom1
32/165
31
5.2. Minh ha5.2.1. Vn t ra
minh ha, chng ta s xy dng mt chng trnh cho php pht cc tp tin
audio, video t th nh SD Card ca thit bdi ng. Danh sch cc nh dng audio,
video c Android h trsc ti ln t th nh. Khi ngi dng chn bng cch n
vo th bi ht sc pht. Giao din chng trnh n gin nh sau:
Hnh 5.1 - Minh ha pht t p tin video v audio
5.2.2.
Gii quytCc bc chnh thc hin minh ha trn nh sau :
Bc 1: ti cc tp tin nh dng audio, video (.mp3, .wav, .mid, .mp4,.3gp) c Android h trt th nhln ListView ca mn hnh hin th danh sch biht. Ly ng dn truy cp th nh thit b bng cch gi hmEnviroment.getExternalStorageDirectory().getAbsolutePath(), sau ti cc tp tin cnh dng audio, video c h trvo danh sch bi ht. Tt nhin truy cp c thnh, ta cn khai bo quyn WRITE_EXTERNAL_STORAGE.
Bc 2: to v s dng i tng MediaPlayer pht bi ht loiaudio khi ngi dng chn bi ht audio.
Bc 3: to v s dng widget ViewView pht bi ht loi video khingi dng chn bi ht video.
Bc 4: xy dng mt lp tha k t lp TabActivity hin th dngtab cho chng trnh. Xin xem thmchi tit trong phn Ph lc mc 4.
-
7/31/2019 LuanVanFinal - Nhom1
33/165
32
PHN 2: XY DNG NG DNG TRA CU THNG TIN
TU, XE
6 Kin tru c ng dung va c ta yu c u6.1.Kin tru c ng dung
Front-end
Ngi dng cui
Giao din tra cutu, xe trn nn
Android
Thng tin tra cu Gi Web Service thch hp
Thng tin chi tit tu, xe
Kt qu tra cu
Ngi qun trng dng web
(ASP.NET)
WebServices
Database
Qun l thng tin tu, xe
Back-end
SQL
Server
Giao din tra cutu, xe trn nn
WebThng tin tra cu Ly d liu
Kt qu tra cu
Trang web cacng ty vn ti
WindowService
(Lp lch)Ly d liu thng qua HTML
Hnh 6.1 - Kin trc ng dng tra cu thng tin tu xe
-
7/31/2019 LuanVanFinal - Nhom1
34/165
-
7/31/2019 LuanVanFinal - Nhom1
35/165
34
Ngi dng cui
Tra cu gi tu, xe
Tra cu gi v tu, xe
Tra cu l trnh tu, xe
Xem lc s tra cu
Chia s thng tin tra cu
Gi t v tu, xe
Xem thng tin hng
Hnh 6.2 - S use case ca ngi dng cui
Ngi dng sc cung cp cc thng tin v l trnh, gii, n v tt c cc gi
v trn tuyn tra cu. Ngoi ra, ngi dng cng c th chia s thng tin tra cu ca mnh
ln trn qua cac ng dung nh SMS , Gmail, Facebook bn b c bit. V ngi
dng cng c thlu li lc s tra cu xem li bt c lc no khi cn thit m khng
cn phi thc hin li vic tra cu. Mt tin ch khc l ngi dng c cung cp sin
thoi v chc nng gi in thoi ngay trn ng dng thc hin cuc gi ti cc hng
vn chuyn.
c t cc use case ca ngi dng cuiBng 6.1 -c t use case tra cu gitu, xe
Use Case ID UC 1
Use Case Name Tra cu gitu, xe
Actor Ngi dng cui
-
7/31/2019 LuanVanFinal - Nhom1
36/165
35
Description Cho php ngi dng xem chi tit gitu, xe chy
Action Steps
1. Ngi dng cung cp cc thng tin tra cu: ni i,ni n, ngy tra cu, loi phng tin, hng
2.
Danh sch cc phng tin tha mn yu cu clit k3. Ngi dng chn phng tin mun i, thng tin chi
tit v gichy c hin th.
Extension PointsNgi dng khng cung cp thng tin hng, loi phngtin, danh sch phng tin ca tt c cc hng tha yu cuc hin th.
Exceptions
1. H thng khng hin thdo xy ra li kt ni c sd liu
2. H thng hin th d liu sai do nhp liu khngng
3. H thng khng hin th c do li ng truynmng, h thng yu cu ngi dng thc hin lichc nng ny.
Pre-Conditions Ngi dng cung cp cc thng tin u vo tra cu
Post-Conditions Chi tit gichy ca phng tin c hin th
Bng 6.2 - c t use case tra cu hnh trnh tu, xe
Use Case ID UC 2
Use Case Name Tra cu hnh trnh tu, xe
Actor Ngi dng cui
Description Cho php ngi dng xem chi tit hnh trnh tu, xe
Action Steps1. Ngi dng chn xem hnh trnh2. H thng hin th thng tin chi tit v hnh trnh tu,
xe
Extension Points
Exceptions
1. H thng khng hin thc do xy ra li kt nic sd liu.
2. H thng khng hin th c do li ng truynmng, h thng yu cu ngi dng kim tra ling truyn mng.
-
7/31/2019 LuanVanFinal - Nhom1
37/165
-
7/31/2019 LuanVanFinal - Nhom1
38/165
37
Extension Points Ngi dng ch mun xem sin thoi t v m khnggi
ExceptionsKhng th gi t v xe do: sin thoi khng hp l hay
khng tn ti trong thc tPre-Conditions Ngi dng thc hin xong tra cu gi v tu, xe
Post-ConditionsNgi dng thy sin thoi t v hoc cuc gi t v
c thc hin
Bng 6.5 - c t use case chia s thng tin kt qu tra cu
Use Case ID UC 5
Use Case Name Chia s thng tin kt qu tra cu(l trnh, gi v, gichy)
Actor Ngi dng cui
Description Cho php ngi dng chia s kt qu tra cu c
Action Steps 1. Ngi dng chn chc nng xem gitu, xe2. Chn chc nng chia s thng tin tra cu.
Extension Points
Exceptions
1.
Khng th chia s thng tin do li ng truynmng hoc thit bdi ng khng c ng dng h tr
chia s
2. Thng tin chia s b thiu: do cha thi gian ly ht thng tin kt qu tra cu t Web Service.
Pre-Conditions Ngi dng thc hin xong tra cu gi v tu, xe
Post-Conditions Thng tin c chia s
Bng 6.6 - c tuse case xem lc s tra cu
Use Case ID UC 6
Use Case Name Xem lc s tra cu
-
7/31/2019 LuanVanFinal - Nhom1
39/165
38
Actor Ngi dng cui
Description Cho php ngi dng xem li nhng tra cu thc hin
Action Steps 1. Ngi dng chn xem lc s tra cu.2. Danh sch tra cu thc hin c hin th3. Ngi dng chn xem chi tit thng tin kt qu tra cu
c.Extension Points Ngi dng chia s thng tin tra cu
Exceptions 1. Khng th chia s thng tin do li ng truyn mnghoc thit bdi ng khng c ng dng h trchia s
2. Chi tit thng tin tra cu b thiu: do cha thigian ly ht thng tin kt qu tra cu t Web
Service.
Pre-Conditions Ngi dng thc hin t nht mt ln tra cu
Post-Conditions Thng tin chi tit kt qu tra cu trc c hin th
S use case ca ngi qun tr h thng tu, xe
Ngi qun tr h thng
Nhp liu
ng nhp
Phn quyn
Thm
Xa
Sa
Hnh 6.3 - S use case ca ngi qun tr h thng tu, xe
-
7/31/2019 LuanVanFinal - Nhom1
40/165
-
7/31/2019 LuanVanFinal - Nhom1
41/165
40
2. Cung cp thng tin nhp liu3. H thng kim tra quyn nhp liu4. Bo nhp liu thnh cng
Extension Points
Exceptions Nhp liu khng thnh cng
1. Ngi dng khng cung cp y cc thng tinbt buc
2. Ngi dng khng c quyn nhp liu trn qun l
Pre-Conditions Ngi dng phi c cp quyn thc hin chc nng .
Ngi dng phi ng nhp
Post-Conditions
Bng 6.9 - c t use case phn quyn
Use Case ID UC 3
Use Case Name Phn quyn
Actor Ngi qun tr
Description Cho php ngi qun tr phn quyn cho cc ngi dng
khc thc hin 1 s chc nng nht nh
Action Steps 1. Qun tr chn ngi dng cn cp quyn2. Chn chc nng cn phn quyn3. Chn thao tc cn phn quyn
Extension Points
Exceptions Ngi phn quyn cp quyn qu vi quyn ca mnh
Pre-Conditions Ngi dng phi tn ti.
Ngi qun tr phi c quyn cp quyn.Ngi dng phi thc hin ng nhp.
Post-Conditions Cp quyn thnh cng
-
7/31/2019 LuanVanFinal - Nhom1
42/165
41
6.2.2. S xl nghip v BPMH thng tra cu thng tin tu, xe gm cc quy trnh x l nghip v sau:
Quy trnh x l nghip v tra cu gitu, xe trn thit bdi ng :Ngi dng cui H thng (Trn thit b di ng) Web Services Database
Thng tin tra cu gi tu xe
Chi tit gi tu xe
Chi tit gi tu xe
Chi tit gi tu xe
Thng tin tra cu gi tu xe
Thng tin tra cu gi tu xe
Chn tra cu tu xe
Gi web services tra cu gi tu xe
Truy xut d liu gi tu xe
D liu tu xe
Nhn thng tin gi tu xe
Hin th thng tin gi tu xe
Tra cu gi tu xe
Hnh 6.4 - Quy trnh x l nghip v tra cu gitu, xe trn thit bdi ng
Thng tin tra cu gm : im i, im n, loi phng tin, hng.
Chi tit gitu xe: gii, gin, thi gian tuyn (nu c)
Quy trnh x l nghip v tra cu l trnh tu, xe trn thit bdi ngNgi dng cui H thng (Trn thit b di ng) Web Services Database
Chi tit gi tu xe
Chi tit hnh trnh
Chi tit hnh trnh tu xe
Chi tit hnh trnh tu xe
Chi tit gi tu xe
Chi tit gi tu xe
Tra cu gi tu xe
Tra cu hnh trnh tu xe
Gi web services ly hnh trnh tu xe
Truy xut d liu hnh trnh tu xe
D liu tu xe
Nhn thng tin hnh trnh tu xe
Hin th hnh trnh tu xe
Hnh 6.5 - Quy trnh x l nghip v tra cu l trnh tu, xe trn thit bdi ng
-
7/31/2019 LuanVanFinal - Nhom1
43/165
42
Chi tit gitu xe: gii, gin, thi gian tuyn (nu c)
Chi tit hnh trnh tu xe: chi tit cc thng tin cc trm trn hnh trnh gm thigian n (thi gian i), c ly.
Quy trnh x l nghip v tra cu gi v tu, xe trn thit bdi ngNgi dng cui H thng (Trn thit b di ng) Web Services Database
Chi tit gi v tu xe
Chi tit gi tu xe Chi tit gi tu xe
Chi tit gi tu xe
Chi tit gi v tu xe
Chi tit gi v tu xe
Tra cu gi tu xe
Tra cu gi v tu xe
Gi web services ly gi v tu xe
Nhn thng tin gi v tu xe
Hin th thng tin gi v tu xe
Truy xut d liu gi v tu xe
Gi t v tu xe
D liu tu xe
Hnh 6.6 - Quy trnh x l nghip v tra cu gi v tu, xe trn thit bdi ng
Chi tit gitu gm: gii, gin, thi gian hnh trnh.Chi tit gi v tu gm: cc loi ghv gi bn tng ng.
-
7/31/2019 LuanVanFinal - Nhom1
44/165
43
Quy trnh x l nghip v tra cu trn nn webNgi dng H thng (trn phn h tra cu web) Database
[Business
Error]
Thng tin tra cu
Chi tit thng tin theo yu cu
Tip nhn thng tin tra cu
Kim tra im i v n
Thc hin tra cu thng tin
Chn li im i v im n
CSDL_QLTauXe
Hin th thng tin tra cu theo yu cuLa chn xem chi tit tuyn cn thit
Thng tin tng qut L trnh Gi v
Hnh 6.7 - Quy trnh x l nghip v tra cu trn nn web
Thng tin tra cu gm : im i, im n, loi phng tin, hng.
Khi xem chi tit th s hin ra : chi tit gitu xe: gii, gin, thi gian tuyn
(nu c), gi v trm, gi v trung gian, hnh nh ca phng tin.
-
7/31/2019 LuanVanFinal - Nhom1
45/165
44
Quy trnh x l nghip v nhp liu trn web serverNhn vin nhp liu H thng (trn phn h qun tr web) Database
[Business
Error]
[Business
Error]
Thao tc
[Business
Error]
Kt qu sau khi nhp liu
Thng tin ti khon
Thng tin ng nhp
Cp nht ti khon
Hin th cc chc nng qun tr
X l cc thao tc va chn CSDL_QLTauXe
Hin th kt qu sau khi nhp liu thnh cng
Thc hin ng nhp
Kim tra hp l
Vo Trang ch
Hin th thng bo
Chn chc nng cn qun l Tip nhn yu cu
Kim tra quyn
Hin th trang va chn
Tr v trang ch
Chn thao tc cn thc hin
Tip nhn yu cu 2
Kim tra quyn 2
Hnh 6.8 - Quy trnh x l nghip v nhp liu trn web server
-
7/31/2019 LuanVanFinal - Nhom1
46/165
45
Ngi qun tr cung cp cc thng tin nhp d liu vo c sd liu. i vi
nhn vin nhp liu ca cc hng vn chuyn th chc quyn qun l cc thng tin ca
hng mnh. i vi nhn vin nhp liu h thng sc qun l cc thng tin ca tt c
cc hng.
Quy trnh x l nghip v phn quynNhn vin nhp l iu h thng H thng (trn phn h web server) Database
Chc nng thm vo CT_TaiK
Chc nng cn cp n
Thng tin ti khon sau khi cp nht
Chn chc nng cn phn quyn
Chn thao tc cn phn quyn
Kim tra chc nng tn
Cp nht Chi tit ti khon
Thm mi chi tit ti khon
CSDL QLTauXe
Hin th thng tin ti khon
Hnh 6.9 - Quy trnh x l nghip v phn quyn
Ngi qun tr h thng thc hin chc nng phn quyn cho tng ngi dng trong
h thng. Ngoi ra mt sngi dng c bit ca hng cng c quyn phn quyn cho
cc ti khon thuc hng ca mnh.
-
7/31/2019 LuanVanFinal - Nhom1
47/165
46
7 Phn tch, thit k7.1.M hnh thc th kt hp (CDM)
1,n
1,n
1,1
0,n
0,n
Hang
MaHang
TenHang
SDT
DiaChi
GioiThieu
MienGiam
Variable characters (5)
Variable characters (100)
Variable characters (12)
Variable characters (100)
Text
Text
-
7/31/2019 LuanVanFinal - Nhom1
116/165
115
android:src="@drawable/km">
1.1.2 Xy dng xlTp tin Adapter_ShowPath.java thc hin vic gn kt d liu n iu khin
ListView.
publicclass Adapter_ShowPath extends BaseAdapter {
ArrayList itemList;public Activity context;public LayoutInflater inflater;
public Adapter_ShowPath(Activity context, ArrayList itemList) {super();
this.context = context;this.itemList = itemList;this.inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
publicint getCount() {//TODO Auto-generated method stubreturnitemList.size();
}
public ItemPath getItem(int position) {//TODO Auto-generated method stubreturnitemList.get(position);
}
publiclong getItemId(int position) {
-
7/31/2019 LuanVanFinal - Nhom1
117/165
116
//TODO Auto-generated method stubreturn 0;
}
publicstaticclass ViewHolder {
TextView txtThoiGianDi;TextView txtThoiGianDen;TextView txtTendiadiem;TextView txtCulychang;
}
public View getView(int position, View convertView, ViewGroup parent) {//TODO Auto-generated method stub
ViewHolder holder;if(convertView == null) {
holder = new ViewHolder();convertView = inflater.inflate(R.layout.row_path, null);
holder.txtThoiGianDi = (TextView) convertView.findViewById(R.id.txtThoiGianDi);
holder.txtThoiGianDen = (TextView) convertView.findViewById(R.id.txtThoiGianDen);
holder.txtTendiadiem = (TextView) convertView.findViewById(R.id.txtTenDiaDiem);
holder.txtCulychang = (TextView) convertView.findViewById(R.id.txtCuly);
convertView.setTag(holder);}
else
holder = (ViewHolder) convertView.getTag();
ItemPath bean = (ItemPath) itemList.get(position);
holder.txtTendiadiem.setText(bean.getDiadiem());holder.txtCulychang.setText(bean.getCulychang());holder.txtThoiGianDen
.setText("Thi gian n: " + bean.getThoigianden());holder.txtThoiGianDi.setText("Thi gian i: " + bean.getThoigiandi());
return convertView;}}
-
7/31/2019 LuanVanFinal - Nhom1
118/165
117
Tp tin MinhHoaListViewActivity.java hin th ListView
publicclass MinhHoaListViewActivityextends ListActivity {ArrayList arraylist_itemPath;Adapter_ShowPath adapter_showPath;
/** Called when the activity is first created. */@Overridepublicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout. main);
arraylist_itemPath = new ArrayList();arraylist_itemPath.add(new ItemPath("Bin Ha", "19:42", "19:39", "29"));arraylist_itemPath.add(new ItemPath("Nha Trang", "2:36", "2:31", "411"));arraylist_itemPath
.add(new ItemPath("Diu Tr", "6:29", "6:17", "630"));arraylist_itemPath.add(new ItemPath("Qung Ngi", "9:16", "9:13", "798"));
adapter_showPath = newAdapter_ShowPath(MinhHoaListViewActivity.this,arraylist_itemPath);
setListAdapter(adapter_showPath);
}
@Overrideprotectedvoid onListItemClick(ListView l, View v, int position, long id) {
//TODO Auto-generated method stubsuper.onListItemClick(l, v, position, id);
}}
1.2 GridView1.2.1 Xy dng giao din
Tp tin main.xml nh ngha giao din cho mn hnh nh sau :
-
7/31/2019 LuanVanFinal - Nhom1
119/165
118
android:verticalSpacing="10dp">
Tp tin grid_item.xml nh ngha mt thnh phn trong GridView
1.2.2 Xy dng xlTp tin Adapter_GridView.java hc hin vic gn kt d liu n iu khin
GridView.
import java.util.ArrayList;import android.app.Activity;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;
-
7/31/2019 LuanVanFinal - Nhom1
120/165
119
import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;
publicclass Adapter_GridView extends BaseAdapter {
private ArrayList listText;private ArrayList listImage;private Activity activity;
public Adapter_GridView(Activity activity, ArrayList listText,ArrayList listImage) {
super();
this.listImage = listImage;this.listText = listText;this.activity = activity;
}
@Overridepublicint getCount() {
//TODO Auto-generated method stubreturnlistText.size();
}
@Overridepublic String getItem(int position) {
//TODO Auto-generated method stubreturnlistText.get(position);
}
@Overridepubliclong getItemId(int position) {
//TODO Auto-generated method stubreturn 0;
}
publicstaticclass ViewHolder {public ImageView imgView;public TextView txtViewTitle;
}
@Overridepublic View getView(int position, View convertView, ViewGroup parent) {
//TODO Auto-generated method stubViewHolder view;
LayoutInflater inflator = activity.getLayoutInflater();
if(convertView == null) {view = new ViewHolder();convertView = inflator.inflate(R.layout.grid_item, null);
view.txtViewTitle = (TextView) convertView.findViewById(R.id.textView1);
-
7/31/2019 LuanVanFinal - Nhom1
121/165
120
view.imgView = (ImageView) convertView.findViewById(R.id.imageView1);
convertView.setTag(view);} else {
view = (ViewHolder) convertView.getTag();}
view.txtViewTitle.setText(listText.get(position));view.imgView.setImageResource(listImage.get(position));
return convertView;}
}
Tp tin MinhHoaGridViewActivity.java hin th GridView
import java.util.ArrayList;
import android.app.Activity;import android.os.Bundle;import android.widget.GridView;
publicclass MinhHoaGridViewActivityextends Activity {/** Called when the activity is first created. */private GridView gridView;private Adapter_GridView adapterGridview;@Overridepublicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout. main);
ArrayList arrayText = new ArrayList();ArrayList arrayImage = new ArrayList();
arrayText.add("Tra cu");arrayText.add("Lc s tra cu");arrayText.add("Hng dn");arrayText.add("Gii thiu");
arrayImage.add(R.drawable.search);arrayImage.add(R.drawable.history_search);arrayImage.add(R.drawable.guide);arrayImage.add(R.drawable.introduction);
adapterGridview = new Adapter_GridView(MinhHoaGridViewActivity. this,arrayText, arrayImage);
gridView = (GridView) findViewById(R.id.gridView1);
gridView.setAdapter(adapterGridview);}
}
-
7/31/2019 LuanVanFinal - Nhom1
122/165
121
1.3 Spinner View, DatePicker1.3.1 Xy dng giao din
Tp tin main.xml nh ngha giao din cho mn hnh tra cu.
-
7/31/2019 LuanVanFinal - Nhom1
123/165
122
android:layout_height="wrap_content"android:layout_weight="1"android:background="@drawable/myspinner_background"/>
-
7/31/2019 LuanVanFinal - Nhom1
124/165
123
android:layout_height="wrap_content"android:layout_marginRight="5dp"android:layout_weight="1"android:drawSelectorOnTop="true"android:editable="false"/>
5.3.2.Xy dng x lSau khi xy dng xong giao din, chng ta si vo phn vit x l chi tit cho cc
s kin. Tp tin MinhHoaTraCuuActivity.java gn kt d liu ln iu khin Spinner,
hin th hp thoi DatePicker nh sau:
import java.util.ArrayList;import java.util.Calendar;import android.app.Activity;import android.app.DatePickerDialog;import android.app.Dialog;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.widget.ArrayAdapter;import android.widget.DatePicker;import android.widget.EditText;import android.widget.Spinner;
publicclass MinhHoaTraCuuActivityextends Activity {/** Called when the activity is first created. */private Spinner spDiemDi, spDiemDen, spLoaiPhuongTien, spHang;private ArrayList arrayDiemDi, arrayDiemDen, arrayLoaiPhuongTien,
arrayHang;private ArrayAdapter adapterDiemDi, adapterDiemDen,
adapterLoaiPhuongTien, adapterHang;private EditText edtDatePicker;privateintmYear, mMonth, mDay;
@Overrideprotectedvoid onCreate(Bundle savedInstanceState) {
-
7/31/2019 LuanVanFinal - Nhom1
125/165
124
//TODO Auto-generated method stubsuper.onCreate(savedInstanceState);
setContentView(R.layout.main);
edtDatePicker = (EditText) findViewById(R.id.edt_ngay);final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);mMonth = c.get(Calendar.MONTH);mDay = c.get(Calendar.DAY_OF_MONTH);
int month = Integer.valueOf(mMonth) + 1;edtDatePicker.setText(month + "/" + mDay + "/" + mYear);
edtDatePicker.setOnTouchListener(new OnTouchListener() {
@Overridepublicboolean onTouch(View v, MotionEvent event) {
//TODO Auto-generated method stubshowDialog(0);returntrue;
}});
spDiemDi = (Spinner) findViewById(R.id.spinner_diemkh);spDiemDen = (Spinner) findViewById(R.id.spinner_diemkt);spLoaiPhuongTien = (Spinner) findViewById(R.id.spinner_loaipt);spHang = (Spinner) findViewById(R.id.spinner_hang);
prepareList();
adapterDiemDi = new ArrayAdapter(MinhHoaTraCuuActivity.this,android.R.layout.simple_spinner_item, arrayDiemDi);adapterDiemDen = new ArrayAdapter(MinhHoaTraCuuActivity.this,android.R.layout.simple_spinner_item, arrayDiemDen);adapterLoaiPhuongTien = new ArrayAdapter(
MinhHoaTraCuuActivity.this,android.R.layout.simple_spinner_item, arrayLoaiPhuongTien);adapterHang = new ArrayAdapter(MinhHoaTraCuuActivity.this,android.R.layout.simple_spinner_item, arrayHang);
adapterDiemDen.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_i
tem);
adapterDiemDi.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
adapterLoaiPhuongTien.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
-
7/31/2019 LuanVanFinal - Nhom1
126/165
125
adapterHang.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spDiemDi.setAdapter(adapterDiemDi);spDiemDen.setAdapter(adapterDiemDen);
spLoaiPhuongTien.setAdapter(adapterLoaiPhuongTien);spHang.setAdapter(adapterHang);
}
@Overrideprotected Dialog onCreateDialog(int id) {
//TODO Auto-generated method stubswitch (id) {case 0:
returnnew DatePickerDialog(this, mDateSetListener, mYear, mMonth,mDay);
}
returnnull;}
private DatePickerDialog.OnDateSetListener mDateSetListener = newDatePickerDialog.OnDateSetListener() {
publicvoid onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {
mYear = year;mMonth = monthOfYear;mDay = dayOfMonth;
int month = Integer.valueOf(mMonth) + 1;edtDatePicker.setText(month + "/" + mDay + "/" + mYear);
}};
publicvoid prepareList() {arrayDiemDi = new ArrayList();arrayDiemDen = new ArrayList();arrayLoaiPhuongTien = new ArrayList();arrayHang = new ArrayList();
arrayDiemDi.add("Si Gn");
arrayDiemDi.add("H Ni");arrayDiemDi.add(" Nng");
arrayDiemDen.add("Si Gn");arrayDiemDen.add("H Ni");arrayDiemDen.add(" Nng");
arrayLoaiPhuongTien.add("Xe khch");
-
7/31/2019 LuanVanFinal - Nhom1
127/165
126
arrayLoaiPhuongTien.add("Tu Ha");arrayHang.add("Tng cng ty ng st Vit Nam");arrayHang.add("Xe khch CLC Mai Linh");
}
}
1.4 TabHost View1.4.1 Xy dng giao din
Tp tin main.xml nh ngha giao din tab cho mn hnh nh sau:
Tp tin tab_indicator.xml nh ngha thnh phn ca mt tab trong TabHost
-
7/31/2019 LuanVanFinal - Nhom1
128/165
-
7/31/2019 LuanVanFinal - Nhom1
129/165
128
1.4.2 Xy dng xlTp tin MinhHoaTabHostActivity.java hin th mn hnh dng tab nh sau:
import android.app.TabActivity;
import android.content.Intent;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.widget.ImageView;import android.widget.TabHost;import android.widget.TextView;
publicclass MinhHoaTabHostActivityextends TabActivity {
@Overridepublicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout. main);
addTab("Tra cu", R.drawable.icsearch, MinhHoaTraCuuActivity.class);addTab("Gi chy", R.drawable.timetable, MinhHoaTraCuuActivity.class);addTab("L trnh", R.drawable.timeline, MinhHoaTraCuuActivity.class);addTab("Bn ", R.drawable.map, MinhHoaTraCuuActivity.class);addTab("Gi v", R.drawable.dollars, MinhHoaTraCuuActivity.class);
}
privatevoid addTab(String labelId, int drawableId, Class c) {TabHost tabHost = getTabHost();Intent intent = new Intent(this, c);TabHost.TabSpec spec = tabHost.newTabSpec("tab" + labelId);
View tabIndicator = LayoutInflater.from(this).inflate(R.layout.tab_indicator, getTabWidget(), false);
TextView title = (TextView) tabIndicator.findViewById(R.id.title);
title.setText(labelId);ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon);icon.setImageResource(drawableId);
spec.setIndicator(tabIndicator);spec.setContent(intent);tabHost.addTab(spec);
}
}
1.5 Gallery v ImageView1.5.1 Xy dng giao din
-
7/31/2019 LuanVanFinal - Nhom1
130/165
129
Tp tin main.xml nh ngha giao din mn hnh nh sau:
Tp tin attr.xml nm trong th mc res/values nh ngha nn cho Gallery nh sau :
1.5.2 Xy dng xlTp tin GalleryView.java nh ngha lp ImageAdapter tha k tBaseAdapter
thc hin vic gn kt hnh nh ln iu khin Gallery v lp GalleryViewActivity k
tha t lp Activity hin th iu khin Gallery v ImageView nh sau:
-
7/31/2019 LuanVanFinal - Nhom1
131/165
130
import android.app.Activity;import android.content.Context;import android.content.res.TypedArray;
import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.Gallery;import android.widget.ImageView;import android.widget.AdapterView.OnItemClickListener;
publicclass GalleryView extends Activity {
Integer[] pics = { R.drawable.pic1, R.drawable.pic2, R.drawable.pic3,R.drawable.pic4, R.drawable.pic5, R.drawable.pic6, R.drawable.pic7,R.drawable.pic8, };
ImageView imageView;
@Overridepublicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout. main);
Gallery ga = (Gallery) findViewById(R.id.Gallery01);ga.setAdapter(new ImageAdapter(this));
imageView = (ImageView) findViewById(R.id.ImageView01);ga.setOnItemClickListener(new OnItemClickListener() {
@Overridepublicvoid onItemClick(AdapterView arg0, View arg1, int arg2,
long arg3) {
imageView.setImageResource(pics[arg2]);
}
});
}
publicclass ImageAdapter extends BaseAdapter {
private Context ctx;intimageBackground;
public ImageAdapter(Context c) {ctx = c;TypedArray ta = obtainStyledAttributes(R.styleable.Gallery1);imageBackground = ta.getResourceId(
-
7/31/2019 LuanVanFinal - Nhom1
132/165
131
R.styleable.Gallery1_android_galleryItemBackground, 1);ta.recycle();
}
@Override
publicint getCount() {returnpics.length;
}
@Overridepublic Object getItem(int arg0) {
return arg0;}
@Overridepubliclong getItemId(int arg0) {
return arg0;}
@Overridepublic View getView(int arg0, View arg1, ViewGroup arg2) {
ImageView iv = new ImageView(ctx);iv.setImageResource(pics[arg0]);iv.setScaleType(ImageView.ScaleType.FIT_XY);iv.setLayoutParams(new Gallery.LayoutParams(150, 120));iv.setBackgroundResource(imageBackground);return iv;
}
}}
2 K thut lp trnh vi SQLite2.1 Xy dng giao din
Tp tin main.xml nh ngha giao din mn hnh chnh ca ng dng nh sau :
-
7/31/2019 LuanVanFinal - Nhom1
133/165
132
android:id="@+id/txtTenKhoa" android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="H"android:textColor="#FFFFFF"
android:textSize="15dp"android:textStyle="bold"/>
-
7/31/2019 LuanVanFinal - Nhom1
134/165
133
android:layout_height="wrap_content"android:layout_weight="1"android:text="Thm"/>
Tp tin dialog_function.xml nh ngha hp thoi cp nht, xa khoa nh sau:
-
7/31/2019 LuanVanFinal - Nhom1
135/165
134
android:textColor="#FFFFFF"android:textSize="15dp"android:textStyle="bold"/>
-
7/31/2019 LuanVanFinal - Nhom1
136/165
-
7/31/2019 LuanVanFinal - Nhom1
137/165
136
2.2 Xy dng xlTp tin DefaultDataHelper.java thc hin vic to, cp nht c sd liu cng nh
nh ngha cc thao tc truy vn, thm, xa, sa nh sau :
import java.util.ArrayList;import java.util.List;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.content.ContentValues;import android.content.Context;
publicclass DefaultDataHelper {
privatestaticfinal StringDATABASE= "Contacts.db";privatestaticfinalintVERSION= 1;privatestaticfinal String TABLE= "Contact";privatestaticfinal String COLUMN_ID = "ContactID";privatestaticfinal String COLUMN_FIRSTNAME= "FirstName";privatestaticfinal String COLUMN_LASTNAME= "LastName";privatestaticfinal String COLUMN_PHONE= "Phone";privatestaticfinal String sqlCREATE= "CREATE TABLE "
+ TABLE+ "(ContactID INTEGER PRIMARY KEY AUTOINCREMENT, FirstName
TEXT NOT NULL,LastName TEXT NOT NULL, Phone TEXT NOT NULL)";
privatestaticfinal String sqlDROP = "DROP TABLE IF EXISTS " + TABLE;
private SQLiteDatabase sqlDB;
private Context contentContext;
privatestaticclass DefaultOpenHelper extends SQLiteOpenHelper {DefaultOpenHelper(Context context) {
super(context,DATABASE, null, VERSION);}
@Overridepublicvoid onCreate(SQLiteDatabase db) {
db.execSQL(sqlCREATE);}
@Overridepublicvoid onUpgrade(SQLiteDatabase db, int OldVersion, int NewVersion) {
db.execSQL(sqlDROP);onCreate(db);
}}
-
7/31/2019 LuanVanFinal - Nhom1
138/165
137
public DefaultDataHelper(Context context) {contentContext = context;DefaultOpenHelper DefaultOpenHelper = new DefaultOpenHelper(
contentContext);
sqlDB = DefaultOpenHelper.getWritableDatabase();}
publiclong DeleteAll() {returnsqlDB.delete(TABLE, null, null);
}
publiclong Update(Integer ContactID, String FirstName, String LastName,String phone) {
ContentValues value = new ContentValues();
value.put(COLUMN_LASTNAME, LastName);value.put(COLUMN_FIRSTNAME, FirstName);value.put(COLUMN_PHONE, phone);
returnsqlDB.update(TABLE, value, "ContactID=" + ContactID, null);}
publiclong Insert(String FirstName, String LastName, String phone) {
ContentValues value = new ContentValues();
value.put(COLUMN_LASTNAME, LastName);value.put(COLUMN_FIRSTNAME, FirstName);value.put(COLUMN_PHONE, phone);
returnsqlDB.insert(TABLE, null, value);}
public List SelectAll() {
List list = new ArrayList();
Cursor cursor = sqlDB.query(TABLE, new String[] { COLUMN_ID,COLUMN_FIRSTNAME, COLUMN_LASTNAME, COLUMN_PHONE
}, null, null,null, null, COLUMN_FIRSTNAME);
if(cursor.moveToFirst()) {do {
list.add(new String[] { cursor.getString(0),cursor.getString(1), cursor.getString(2),cursor.getString(3) });} while (cursor.moveToNext());if(cursor != null && !cursor.isClosed()) {
cursor.close();}
}return list;
-
7/31/2019 LuanVanFinal - Nhom1
139/165
138
}
publicint Delete(Integer DeparmentID) {returnsqlDB.delete(TABLE, "DepartmentID =" + DeparmentID, null);
}
}
Tp tin SQLiteAPIActivity.java xy dng mn hnh chnh cng nh cc x trn mn
hnh nh sau :
import java.util.ArrayList;import java.util.List;import android.app.Dialog;import android.app.ListActivity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup.LayoutParams;import android.view.Window;import android.widget.Button;import android.widget.EditText;import android.widget.ListView;import android.widget.Toast;
publicclass SQLiteAPIActivity extends ListActivity implements OnClickListener {
private EditText edtFirst, edtLast, edtPhone, edtFirst_function,edtLast_function, edtPhone_Function;
private ArrayList itemlist;
private Button btnThem, btnXoaTatCa, btnCapNhat, btnXoa, btnThoat;AdapterListView adapter;private DefaultDataHelper DefaultDataHelper;private List Contacts;privatestaticfinalintDIALOG_FUNCTION= 1;private Dialog dialog;privateintposition;private ContactInfo item;
@Overridepublicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout. main);
DefaultDataHelper = new DefaultDataHelper(this);Contacts = new ArrayList();itemlist = new ArrayList();item = new ContactInfo();btnThem = (Button) findViewById(R.id.btnThem);btnXoaTatCa = (Button) findViewById(R.id.btnXoaTatCa);
edtFirst = (EditText) findViewById(R.id.edtFirstName);
-
7/31/2019 LuanVanFinal - Nhom1
140/165
139
edtLast = (EditText) findViewById(R.id.edtLastName);edtPhone = (EditText) findViewById(R.id.edtPhone);
btnThem.setOnClickListener(this);btnXoaTatCa.setOnClickListener(this);
RefreshData();}
@Overridepublicvoid onClick(View v) {
//TODO Auto-generated method stubswitch (v.getId()) {case R.id.btnThem:
String ho = edtFirst.getText().toString();String ten = edtLast.getText().toString();String phone = edtPhone.getText().toString();
if(ho.length() == 0 || ten.length() == 0 || phone.length() == 0) {Toast.makeText(SQLiteAPIActivity.this,
"Bn cn nhp y thng tin", Toast.LENGTH_SHORT).show();
} else {InsertDepartment(ho, ten, phone);
}break;
case R.id.btnXoaTatCa:deleteAllContacts();
break;
case R.id.btnthoat:dismissDialog(DIALOG_FUNCTION);break;
case R.id.btnCapnhat:ContactInfo item = (ContactInfo) adapter.getItem(position);
updateContact(item.getMadanhba(),edtFirst_function.getText().toString().toUpperCase(), edtLast_function .getText().toString().toUpperCase(), edtPhone_Function.getText().toString());
dismissDialog(DIALOG_FUNCTION);break;
case R.id.btnxoa:
ContactInfo item2 = (ContactInfo) adapter.getItem(position);deleteDepartment(item2.getMadanhba());dismissDialog(DIALOG_FUNCTION);break;
}}
-
7/31/2019 LuanVanFinal - Nhom1
141/165
140
privatevoid InsertDepartment(String firstName, String lastName,String phone) {
if(DefaultDataHelper .Insert(firstName, lastName, phone) != -1) {
RefreshData();edtFirst.setText("");edtLast.setText("");edtPhone.setText("");
} else {Toast.makeText(SQLiteAPIActivity.this, "Thm khng thnh cng",
Toast.LENGTH_SHORT).show();}
}
@Overrideprotected Dialog onCreateDialog(int id) {
//TODO Auto-generated method stubswitch (id)
{caseDIALOG_FUNCTION:
item = (ContactInfo) adapter.getItem(position);this.dialog = new Dialog(SQLiteAPIActivity. this);
this.dialog.getWindow().setLayout(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
dialog.setTitle("Cp nht, xa danh b");dialog.requestWindowFeature(Window.FEATURE_LEFT_ICON);
dialog.setContentView(R.layout.dialog_function);
dialog.setFeatureDrawableResource(Window.FEATURE_LEFT_ICON,R.drawable.update);
dialog.setCancelable(true);
btnCapNhat = (Button) dialog.findViewById(R.id. btnCapnhat);btnThoat = (Button) dialog.findViewById(R.id.btnthoat);btnXoa = (Button) dialog.findViewById(R.id. btnxoa);
edtFirst_function = (EditText) dialog.findViewById(R.id. edtFirstName);edtLast_function = (EditText) dialog.findViewById(R.id. edtLastName);
edtPhone_Function = (EditText) dialog.findViewById(R.id. edtPhone);
edtFirst_function.setText(item.getHo());edtLast_function.setText(item.getTen());edtPhone_Function.setText(item.getSdt());
btnCapNhat.setOnClickListener(this);btnXoa.setOnClickListener(this);
-
7/31/2019 LuanVanFinal - Nhom1
142/165
141
btnThoat.setOnClickListener(this);
}
returndialog;
}
@Overrideprotectedvoid onPrepareDialog(int id, Dialog dialog) {
//TODO Auto-generated method stubswitch (id) {caseDIALOG_FUNCTION:
item = (ContactInfo) adapter.getItem(position);
this.dialog = dialog;this.dialog.getWindow().setLayout(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
btnCapNhat = (Button) dialog.findViewById(R.id.btnCapnhat);btnThoat = (Button) dialog.findViewById(R.id.btnthoat);btnXoa = (Button) dialog.findViewById(R.id.btnxoa);
edtFirst_function = (EditText) dialog.findViewById(R.id.edtFirstName);
edtLast_function = (EditText) dialog.findViewById(R.id.edtLastName);edtPhone_Function = (EditText) dialog.findViewById(R.id.edtPhone);
edtFirst_function.setText(item.getHo());edtLast_function.setText(item.getTen());edtPhone_Function.setText(item.getSdt());
btnCapNhat.setOnClickListener(this);btnXoa.setOnClickListener(this);btnThoat.setOnClickListener(this);
}}
@Overrideprotectedvoid onListItemClick(ListView l, View v, int position, long id) {
//TODO Auto-generated method stubthis.position = position;showDialog(DIALOG_FUNCTION);
}
privatevoid deleteDepartment(Integer contactID) {if(DefaultDataHelper .Delete(contactID) != -1) {
Toast.makeText(SQLiteAPIActivity.this, "Xa thnh cng",Toast.LENGTH_SHORT).show();
RefreshData();
-
7/31/2019 LuanVanFinal - Nhom1
143/165
-
7/31/2019 LuanVanFinal - Nhom1
144/165
143
Toast.makeText(SQLiteAPIActivity.this, "Xa tt c tht bi",Toast.LENGTH_SHORT).show();
}
}
Tp tin AdapterListView.java thc hin gn kt d liu t c sd liu ln iu
khin ListView trong mn hnh chnh. Np chng cc hm l getCount(), getItem(),
getItemId(), getView() ln lt dng nh ngha hm ly slng, thng tin, nh danh
(v tr), giao din hin th ca mc tin :
import java.util.ArrayList;import android.app.Activity;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;
publicclass AdapterListView extends BaseAdapter {
Activity context;public LayoutInflater inflater;ArrayList itemlist;
public AdapterListView(Activity context, ArrayList itemlist) {
super();this.context = context;this.itemlist = itemlist;inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Overridepublicint getCount() {
//TODO Auto-generated method stubreturnitemlist.size();
}
@Overridepublic Object getItem(int position) {
//TODO Auto-generated method stubreturnitemlist.get(position);
}
@Override
-
7/31/2019 LuanVanFinal - Nhom1
145/165
top related