Top Banner

of 31

BaoCaoThucTap Bichnt D09CNPM3 V3

Aug 08, 2018

Download

Documents

Bich Nguyen Thi
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    1/31

    BO CO THC TP NG

    DNG LCH-S KINANDROID TRN DI NGGio vin hng dn: T Minh PhngSinh vin thc hin: Nguyn Th Bch

    JUNE 2, 2013

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    2/31

    ContentsContents.............................................................................................................................2I.M t yu cu ca ng dng............................................................................................3

    1.Mc tiu.......................................................................................................................3

    2.Use case.......................................................................................................................3

    3.M t chc nng...........................................................................................................5

    3.1.Xem lch.................................................................................................................5

    3.2.t s kin.............................................................................................................5

    3.3.Sa, Xa s kin....................................................................................................5

    3.4.Bo s kin............................................................................................................6II.Phn tch yu cu............................................................................................................6

    1.M hnh use case chi tit v kch bn m t................................................................6

    1.1.Use case: Thm s kin.........................................................................................6

    1.2.Use case: Sa s kin............................................................................................7

    1.3.Use case: Xa s kin............................................................................................9

    2.M hinh lp.................................................................................................................11

    III. Thit k........................................................................................................................15

    1.S lp chi tit........................................................................................................15

    2.Biu tun t...........................................................................................................16

    IV.Thc thi........................................................................................................................18

    V.Ph lc hnh nh demo.................................................................................................23

    1.Mn hnh chnh (ban u)..........................................................................................23

    2.Mn hnh DayView ....................................................................................................24

    3.Mn hnh ci t (settings)........................................................................................26

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    3/31

    I. M t yu cu ca ng dng1. Mc tiu.Lch l cng c v cng quan trng nhc nh chng ta v ngy thng v cc skin. CalenderEvent l mt ng dng lch pht trin trn android, c cc chcnng c bn sau:

    - Hin th ngy thng nm gip ngi s dng xem lch d dng.

    - Cho php t lch, nhc nh cng vic, ghi ch cc s kin quan trng

    - Nhc vic ngi dung bng m thanh v vn bn.

    2. Use caseCc chc nng chnh ca ng dng c m t nh s di y:

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    4/31

    Use case c m t bng di:

    STT Tn Use case M t1 Xem lch Chc nng ny cho php ngi dung xemlch hng ngy, ngy hin ti s c lm ni

    bt so vi cc ngy khc. Mn hnh khi mng dng l mt tp cc ngy ca thng hinti, ngi dung c th chn cc thng trchoc sau xem.

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    5/31

    2 Chn ngy Trn giao din xem lch, actor c th nhnchn vo bt k ngy no hin th trong lch xem s kin nhc nh, edit hoc thm mis kin.

    3 t lch Bao gm cc cng vic: nhp ni dung skin, chn thi im xy ra s kin.4 Sa, xa s kin Khi click chn vo mt ngy. Chui s kin

    c nhp ti cc thi im trong ngyc hin th. Ngi dung c th click voImageButton hin th dialog chc nng:Sa, Xa cc event.

    3. M t chc nng.

    3.1. Xem lch.

    Chc nng ny cho php hin th cc ngy trong mt thng ca mt nm, gipuser c th d dng xem ngy, tnh ngy. C th thc hin xem lch ca thngtrc, thng tip theo.

    3.2. t s kin.

    Khi mn hnh ca ngy hin th. Mn hnh ny bao gm 24 khung gi ca ngy.

    Mi khung gi c tng ng mt s kin nhp vo. Ngi dng chn khunggi ph hp t s kin. Khi click chut vo khung gi cn trng (cha cs kin), mt dialog cho php nhp s kin c hin th. ngi dng nhps kin vo .

    - Chn [Thm]: S kin c lu vo c s d liu, dialog ng li.

    - Chn [Hy]: S kin khng c thm vo c s d liu, dialog ng li.

    3.3. Sa, Xa s kin.

    Chc nng ny s cho php user thay i ni dung s kin nhp vo. Bng cchclick vo ImageButton hin th bn cnh ca event. Khi click vo s hin thDialog cha chc nng: Sa, xa s kin.

    - Chn Sa: Hin th dialog ni dung s kin, ngi dng c th nhp li nidung ny. V chn: Lu tip cp nht li s kin trong CSDL, chn Hy ko thay i ni dung nhp vo.

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    6/31

    - Chn Xa: Hin th dialog c mun xa s kin ny ko? Chn [ng ] skin s b xa. Chn [Hy] s kin c gi li.

    3.4. Bo s kin.Khi n thi im nhc s kin, thi im xy ra s kin, h thng s hin thmt thng bo bng vn bn v m thanh user theo di v chun b cho skin din ra.

    II. Phn tch yu cu.

    1. M hnh use case chi tit v kch bn m t.

    1.1. Use case: Thm s kin

    Tn use case Thm s kin

    Tc nhn chnh Ngi dngTin iu kin ng dng c m, trn mn hnh

    in thoi

    m bo ti thiu Khng lu li event v tr v mnhnh trc .

    m bo thnh cng Thm s kin thnh cng vo CSDL

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    7/31

    Kch hot Ngi s dng OnClick vo mt ngytrong thng

    Chui s kin chnh:

    1. ng dng hin th mn hnh chnh cha cc ngy ca mt thng trongnm.

    2. Ngi dung thc hin chc nng OnClick vo mt ngy

    3. Hin th mt mn hnh chi tit 24 gi ca ngy v c cc nhp s kin

    4. Ngi dng click chn vo mt khung gi.

    5. Dialog hin th nhp s kin. C cc button Thm/Hy.

    6. Nhp s kin v chn Thm.7. Hin th dialog hi ngi dng :Bn c mun thit lp bo thc cho s

    kin ny khng? vi cc Button [C/Khng]

    8. Ngi dng chn [C].

    9. C mt thng bo hin th khong thi gian s kin s xy ra v cthng bo cho ngi dng. S kin hin th trn khung gi tng ng,ng thi lu vo trong c s d liu.

    Ngoi l:

    6.a. Chn Hy.

    6.a.1. H thng ng li Dialog v S kin khng c lu li.

    7.a. Chn Khng.

    7.a.1. Dialog ng li, s kin ko c thit lp bo thc. S kin hin th trnkhung gi tng ng, ng thi lu vo trong c s d liu

    1.2. Use case: Sa s kin

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    8/31

    Tn use case Sa s kin

    Tc nhn chnh Ngi dung

    Tin iu kin ng dng c m, trn mn hnhin thoi

    m bo ti thiu Khng lu li event v tr v mnhnh trc .

    m bo thnh cng Sa s kin thnh cng vo CSDL

    Kch hot Ngi s dng OnClick vo mt ngytrong thng

    Chui s kin chnh:

    1. ng dng hin th mn hnh chnh cha cc ngy ca mt thng trong

    nm.2. Ngi dung thc hin chc nng OnClick vo mt ngy

    3. Hin th mt mn hnh chi tit 24 gi ca ngy v c cc cha s kintng ng.

    4. Ngi dng click chn vo ImageButton bn cnh s kin.

    5. Hin th Dialog cha cc icon Sa, xa s kin.

    6. Nhn chn vo icon Sa

    7. Dialog hin th event cn sa vi cc button Lu / Hy.8. Nhp li v chn Lu.

    9. Dialog ng li, s kin c update mi trong CSDL

    Ngoi l:

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    9/31

    8.a. Chn Hy.

    8.a.1. Dialog ng li v s kin vn c gi li ko thay i.

    1.3. Use case: Xa s kin.

    Tn use case Xa s kin

    Tc nhn chnh Ngi dng

    Tin iu kin ng dng c m, trn mn hnhin thoi

    m bo ti thiu Khng lu li event v tr v mnhnh trc .

    m bo thnh cng Xa s kin thnh cng vo CSDLKch hot Ngi s dng OnClick vo mt ngy

    trong thng

    Chui s kin chnh:

    1. ng dng hin th mn hnh chnh cha cc ngy ca mt thng trongnm.

    2. Ngi dung thc hin chc nng OnClick vo mt ngy

    3. Hin th mt mn hnh chi tit 24 gi ca ngy v c cc cha s kintng ng.

    4. Ngi dng click chn vo ImageButton bn cnh s kin.

    5. Hin th Dialog cha cc icon Sa, xa s kin.

    6. Nhn chn vo icon Xa

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    10/31

    7. Dialog hin th thng bo: Bn c chc chn mun hy s kin ny?vi button C / Khng.

    8. Chn C.

    9. Dialog ng li, s kin c xa khi CSDL

    Ngoi l:

    8.a. Chn Khng.

    8.a.1. Dialog ng li, s kin ko xa khi CSDL

    1.4. Use case : Ci t

    Tn use case Ci t

    Tc nhn chnh Ngi dng

    Tin iu kin ng dng c m, trn mn hnhin thoi

    m bo ti thiu Khng lu li event v tr v mnhnh trc .

    m bo thnh cng Xa s kin thnh cng vo CSDLKch hot Ngi dng click chn vo menu ca

    in thoi

    Chui s kin chnh:

    1. ng dng hin th mn hnh chnh cha cc ngy ca mt thng trong

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    11/31

    nm.

    2. Ngi dung thc hin chc nng OnClick vo Menu

    3. Hin thi menu chc nng ngi dng la chn: Settings hay Delete tt

    c s kin.4. Ngi dng click chn vo Settings.

    5. Hin th layout cha cc la chn: chn kiu chung, thi gian nhcthng bo s kin.

    6. Chn kiu chung l apple_ring, t bo thc l trc 1 gi. V clickchn vo [Save] thit lp.

    7. Mt Toast thng bo l thit lp thnh cng!.

    8. Mn hnh tr v mn hnh chnh, hin th cc ngy ca thng.Ngoi l:

    6.a. Chn [Cancel] hy thit lp.

    6.a.1. Toast hin th thng bo Thit lp b hy

    6.a.2. Layout setting ng li, mn hnh tr v mn hnh chnh (mn hnh chacc ngy ca thng).

    2. M hinh lp.

    T nhng scenario trn ta xc nh cc lp nh sau:

    Tn lp Thuc tnh M t

    Event - idEvent: m skin

    - nameEvent: Tns kin

    - hourEvent: git s kin

    - dayEvent: Ngys kin

    Lp thc th Event

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    12/31

    - hourRing: Thiim thng bonhc s kin

    - idEvent2: Mt id

    khc ca s kin.Xc nh thiim ca s kinchnh xc ( lp trnh)

    Sound - idSound

    - nameSound

    - linkSound

    Lp thc th m thanh bo thc.

    m bo c lu trn th SDcardca in thoi.

    C s d liu c lu trnSDCard ca in thoi

    CalendarAdapter L mt Class extend viBaseAdapter.

    Lp nhn d liu tCalendarView hin th ra gi

    tr ngy trn cc Cell caGridView v thng nm trnTextView

    CalendarViewTT L mt Class extend vi Activity.

    Mn hnh hin th chnh ca ngdng, n bao gm cc ngy trongthng ca nm, cc button c thxem thng trc, thng tip theo.

    C forcus ti ngy ang din ra.Cho php khi click vo mt ngytrong thng (1 cell) s hin th ramn hnh tip theo nhp skin.

    DayAdapter L mt class extends vi

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    13/31

    BaseAdapter.

    Ly cc gi tr ngy, gi hinth ln cc layout.

    Mang ngha nh cu ni.DayActivity Extends vi Activity.

    Hin th mn nhp event ca ngdng.

    DBManager Thao tc vi c s d liu, qunl cc bn ghi trong cc bng cac s d liu.

    SettingActivity Cha cc phng thc thc hin

    cc chc nng:- Ci t kiu chung bo

    - Ci t thi gian nhc bo.

    S package.

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    14/31

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    15/31

    S lp.

    III. Thit k.

    1. S lp chi tit.

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    16/31

    2. Biu tun t.

    Chc nng thm s kin.

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    17/31

    Chc nng sa s kin.

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    18/31

    IV. Thc thi

    1. To mt giao din hin th lch.

    Mn hnh hin th bao gm cc , mi l tng ng 1 ngy. S dngGridView hin th ra cc l cc ngy trong thng.

    Mt textView hin th ra thng v nm tng ng.

    Button next v previous hin th thng tip theo v thng trc.

    Thit k giao din hin th, ta s dng mt file XML trong th mc layoutca project.

    /layout/list_item.xml

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    19/31

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    20/31

    android:layout_height="fill_parent"android:layout_width="fill_parent">

    2. To mt lp CalendarAdapter.java.

    Khai bo:

    public GregorianCalendar pmonthmaxset;private GregorianCalendar selectedDate;

    y l khai bo ngy, thng theo lch da trn khu vc a l. C th tychn khu vc khai bo bng cch s dng:

    Locale.setDefault( Locale.US ); // y l ang la chn khu vc US. Vit Nam //th cth la chn khu vc l TRADITIONAL_CHINESE

    Phng thc.

    // Thit lp cc gi tr hin th ln CalendarView

    public View getView(int position, View convertView, ViewGroup parent) {View v = convertView;TextView dayView;if(convertView == null) { // if it's not recycled, initialize some

    // attributesLayoutInflater vi = (LayoutInflater) mContext

    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    v = vi.inflate(R.layout.calendar_item, null);}dayView = (TextView) v.findViewById(R.id.date);// separates daystring into parts.String[] separatedTime = dayString.get(position).split("-");// taking last part of date. ie; 2 from 2012-12-02String gridvalue = separatedTime[2].replaceFirst("^0*", "");// checking whether the day is in current month or not.if((Integer.parseInt(gridvalue) > 1) && (position < firstDay)) {

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    21/31

    // setting offdays to white color.dayView.setTextColor(Color.WHITE);dayView.setClickable(false);dayView.setFocusable(false);

    } elseif((Integer.parseInt(gridvalue) < 7) && (position > 28)) {dayView.setTextColor(Color.WHITE);

    dayView.setClickable(false);dayView.setFocusable(false);} else {

    // setting curent month's days in blue color.dayView.setTextColor(Color.BLUE);

    }

    if(dayString.get(position).equals(curentDateString)) {setSelected(v);previousView = v;

    } else {v.setBackgroundResource(R.drawable.list_item_background);

    }dayView.setText(gridvalue);

    // create date string for comparisonString date = dayString.get(position);

    if(date.length() == 1) {date = "0" + date;

    }String monthStr = "" + (month.get(GregorianCalendar.MONTH) + 1);if(monthStr.length() == 1) {

    monthStr = "0" + monthStr;}

    // show icon if date is not empty and it exists in the items arrayImageView iw = (ImageView) v.findViewById(R.id.date_icon);if(date.length() > 0 && items != null && items.contains(date)) {

    iw.setVisibility(View.VISIBLE);} else {

    iw.setVisibility(View.INVISIBLE);}return v;

    }

    // hin th ngy la chn, trng thi mc nh l ngy hm nay.

    public View setSelected(View view) {if(previousView != null) {

    previousView.setBackgroundResource(R.drawable.list_item_background);}previousView = view;view.setBackgroundResource(R.drawable.typeb_calendar_today);return view;

    }

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    22/31

    Thm s kin c nhp vo.

    Phng thc insertEvent(.) cho php thm s kin vo c s d liu.

    hin th cc event nhp vo cho ngi dng bit.

    Ta cn c phng thc Ly tt c danh sch ca s kin trong c s d liu.

    Phng thc: getEvent(): ArrayList

    publicvoid insertEvent( String idEvent2, String name, inthour, String day, int hourRing) {

    getWritableDatabase();ContentValues cv = new ContentValues();cv.put(COLUMN_IDEVENT2, idEvent2);cv.put(COLUMN_NAMEEVENT, name);cv.put(COLUMN_HOUR, hour);cv.put(COLUMN_DAY, day);cv.put(COLUMN_RING, hourRing);

    database.insert(TABLE_EVENT, null, cv);closeDatabase();

    }

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    23/31

    public ArrayList getEvent() {getReadableDatabase();ArrayList listEvent = new

    ArrayList();Cursor cursor = database.query(TABLE_EVENT, new

    String[] {COLUMN_IDEVENT2, COLUMN_IDEVENT,

    COLUMN_NAMEEVENT, COLUMN_HOUR, COLUMN_DAY,COLUMN_RING }, null, null, null, null,

    null, null);if(cursor.moveToFirst()) {

    do {EventTT temp = new EventTT();temp.setIdEvent2(cursor.getString(0));

    temp.setIdEvent(Integer.parseInt(cursor.getString(1)));temp.setNameEvent(cursor.getString(2));temp.setHourEvent(cursor.getInt(3));

    temp.setDayEvent(cursor.getString(4));temp.setHourRing(cursor.getInt(5));

    listEvent.add(temp);} while (cursor.moveToNext());

    }if(cursor != null && !cursor.isClosed()) {

    cursor.close();}return listEvent;

    }

    V. Ph lc hnh nh demo.

    1. Mn hnh chnh (ban u)

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    24/31

    2. Mn hnh DayView

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    25/31

    Sau khi chn thm s kin. H thng s hi l bn c mun thit lp bo thc cho skin ny khng?

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    26/31

    3. Mn hnh ci t (settings)

    Cho php chn kiu chung bo thc v t thng bo !

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    27/31

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    28/31

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    29/31

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    30/31

    NH GI CA GIO VIN HNG DN.

    ..

    ..

  • 8/22/2019 BaoCaoThucTap Bichnt D09CNPM3 V3

    31/31