luanvanfinal - nhom1

Upload: le-anh-toan

Post on 05-Apr-2018

219 views

Category:

Documents


0 download

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