版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課 程 設(shè) 計(jì) 報(bào) 告 課程名稱 嵌入式軟件方向綜合設(shè)計(jì) 題 目 手機(jī)日歷工具 指導(dǎo)教師 設(shè)計(jì)起止日期 2013.12.272014.1.17 系 別 專 業(yè) 學(xué)生姓名 班級(jí)/學(xué)號(hào) 成 績(jī) 一、設(shè)計(jì)目的:利用sqlite設(shè)計(jì)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)放置日歷,提醒用戶需要做的工作事項(xiàng)。利用service完成視力保護(hù)程序,當(dāng)應(yīng)用程序運(yùn)行1分鐘后,顯示提示信息提醒用戶保護(hù)視力。二、設(shè)計(jì)思路:程序使用menu按鍵實(shí)現(xiàn)數(shù)據(jù)庫(kù)的基本操作,通過(guò)設(shè)計(jì)單層的menu按鈕,讓操作更直觀,搭配listview來(lái)觸發(fā)單擊事件。與用戶交互的唯一渠道是edittext,在設(shè)計(jì)“新增”、“修改”功能時(shí),會(huì)引用edittext里
2、的值,可以在edittext編輯工作事項(xiàng),通過(guò)listview顯示所有的工作事項(xiàng)。利用service設(shè)計(jì)視力保護(hù)程序:服務(wù)的生命周期比activity簡(jiǎn)單,但因?yàn)榉?wù)可能在用戶不知情的情況下在后臺(tái)運(yùn)行,因此需要關(guān)注服務(wù)如何創(chuàng)建和銷毀。3、 程序源碼main.xmlmcy.xml strings.xml hello world, mcy579! mcy579 重要通知保護(hù)視力應(yīng)用已經(jīng)運(yùn)行1分鐘,請(qǐng)注意休息!視力保護(hù)程序androidmainmest.xml mcy579.javapackage cn.mcy579;import java.util.arraylist;import java.ut
3、il.hashmap;import android.app.activity;import android.content.contentvalues;import android.content.intent;import android.database.cursor;import android.database.sqlite.sqlitedatabase;import android.graphics.color;import android.os.bundle;import android.view.menu;import android.view.menuitem;import a
4、ndroid.view.view;import android.widget.adapterview;import android.widget.adapterview.onitemclicklistener;import android.widget.edittext;import android.widget.listview;import android.widget.simpleadapter;import android.widget.textview;import android.widget.toast;public class mcy579 extends activity p
5、rivate sqlitedatabase msqlitedatabase;private edittext input; private listview listview;final static int menu_add= menu.first;final static int menu_modify = menu.first+1;final static int menu_delet = menu.first+2;private string current_even; /* called when the activity is first created. */ override
6、public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); setcontentview(r.layout.main); startservice(new intent(this, m1cy579.class); input = (edittext) findviewbyid(r.id.edittext01); listview=(listview)findviewbyid(r.id.listview01);msqlitedatabase=this.openorcreatedatabas
7、e(mycalendar.db,mode_private , null); try msqlitedatabase.execsql(create table calendar(_id integer primary key,event_item text); catch(exception ex) system.out.println(calendar表已存在); listview_show(); listview.setonitemclicklistener(new onitemclicklistener()public void onitemclick(adapterview arg0,
8、view v, int arg2,long arg3) / todo auto-generated method stubtextview tv=(textview) v.findviewbyid(r.id.textview01);current_even=tv.gettext().tostring();); overrideprotected void ondestroy() / todo auto-generated method stubmsqlitedatabase.close();super.ondestroy();private void listview_show() / tod
9、o auto-generated method stub arraylisthashmap list = new arraylisthashmap(); cursor c=msqlitedatabase.query(true,calendar, new stringevent_item, null, null, null, null, null, null); if(c=null)return;if(c.getcount()=0)toast.maketext(mcy579.this,沒(méi)有資料,toast.length_short).show();elsec.movetofirst();hash
10、map map0 = new hashmap();map0.put(event_item, c.getstring(0);list.add(map0);while(c.movetonext()hashmap map = new hashmap();map.put(event_item, c.getstring(0);list.add(map); /綁定一個(gè)簡(jiǎn)單的適配器 listview.setadapter(new simpleadapter(mcy579.this,/第一個(gè)參數(shù)為context /第二個(gè)參數(shù)為裝入內(nèi)容的arraylistlist, /第三個(gè)參數(shù)為item布局文件r.layou
11、t.mcy,/第四個(gè)參數(shù)為每個(gè)item中的數(shù)據(jù)id,與前面裝入map中的鍵名字一樣 new string event_item,/第五個(gè)參數(shù)為item布局文件中每個(gè)數(shù)據(jù)所對(duì)應(yīng)引用的顯示控件new int r.id.textview01);overridepublic boolean oncreateoptionsmenu(menu menu) / todo auto-generated method stubmenu.add(0,menu_add,0,添加);menu.add(0,menu_modify,1,修改);menu.add(0,menu_delet,2,刪除);return supe
12、r.oncreateoptionsmenu(menu);override public boolean onoptionsitemselected(menuitem item) switch(item.getitemid() case menu_add: contentvalues newrow=new contentvalues(); newrow.put(event_item, input.gettext().tostring(); msqlitedatabase.insert(calendar, null, newrow); listview_show(); return true; c
13、ase menu_modify: msqlitedatabase.execsql(delete from calendar where event_item=+current_even+); contentvalues newrow01=new contentvalues(); newrow01.put(event_item, input.gettext().tostring(); msqlitedatabase.insert(calendar, null, newrow01); listview_show(); return true; case menu_delet: msqlitedat
14、abase.execsql(delete from calendar where event_item=+current_even+); listview_show(); return false; m1cy579.javapackage cn.mcy579;import java.util.timer;import java.util.timertask;import android.app.notification;import android.app.notificationmanager;import android.app.pendingintent;import android.a
15、pp.service;import android.content.context;import android.content.intent;import android.os.ibinder;public class m1cy579 extends serviceprivate timer timer;overridepublic ibinder onbind(intent arg0) / todo auto-generated method stubreturn null; override public void oncreate() super.oncreate(); timer =
16、 new timer(true);/ 創(chuàng)建timer對(duì)象 override public void onstart(intent intent, int startid) super.onstart(intent, startid); timer.schedule(new timertask() override public void run() string ns = context.notification_service; / 獲得通知管理器 notificationmanager manager = (notificationmanager) getsystemservice(ns)
17、; / 創(chuàng)建通知 notification notification = new notification( r.drawable.icon, gettext(r.string.ticker_text), system.currenttimemillis(); / 定義通知的標(biāo)題 charsequence contenttitle = gettext(r.string.content_title); / 定義通知的內(nèi)容 charsequence contenttext = gettext(r.string.content_text); / 創(chuàng)建intent對(duì)象 intent intent =
18、new intent(m1cy579.this, mcy579.class); / 創(chuàng)建pendingintent對(duì)象(待定的intent) pendingintent contentintent = pendingintent.getactivity( m1cy579.this, 0, intent, intent.flag_activity_new_task); / 定義通知行為 notification.setlatesteventinfo( m1cy579.this, contenttitle, contenttext, contentintent); / 顯示通知 manager.notify(0, notification); / 停止服務(wù) m1cy579.this.stopself(); , 60000); 四、程序截圖 圖 4.1 程序結(jié)構(gòu) 圖 4.2 圖 4.3圖4.2 是輸入數(shù)據(jù)后,按下menu鍵彈出添加、修改、刪除項(xiàng)后添加的兩個(gè)數(shù)據(jù)界面。 圖4.2 是刪除了兩個(gè)數(shù)據(jù)中的0002數(shù)據(jù)的界面。 圖 4.4 圖 4.5圖4.4 是將輸入的0002數(shù)據(jù)修改成0003后的界面。圖4.5 是視力保護(hù)程序運(yùn)行效果圖。5、 心得體會(huì) 在本次課程設(shè)計(jì)中,更加深入了解了程序設(shè)計(jì)的全過(guò)程,在設(shè)計(jì)程序之前,要有一個(gè)清晰的思路;在設(shè)計(jì)程序時(shí),不能妄想一次就將整
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 木材的抗鑒別和表面質(zhì)檢考核試卷
- 化學(xué)礦石的界面現(xiàn)象與界面反應(yīng)考核試卷
- 《籌資決策習(xí)題》課件
- 危險(xiǎn)品倉(cāng)儲(chǔ)集團(tuán)化管理考核試卷
- 2024亮化工程設(shè)計(jì)合同范本亮化工程設(shè)計(jì)合同范本3
- 建筑安全施工責(zé)任劃分考核試卷
- 人工智能在精準(zhǔn)農(nóng)業(yè)中的作用分析考核試卷
- 服裝設(shè)計(jì)與生產(chǎn)全流程管理考核試卷
- 合成材料制造的構(gòu)件設(shè)計(jì)與制造工藝考核試卷
- 豬病解剖全過(guò)程講解
- GB/T 17396-2022液壓支柱用熱軋無(wú)縫鋼管
- YY/T 0295.1-2005醫(yī)用鑷通用技術(shù)條件
- 國(guó)家開(kāi)放大學(xué)《植物生理學(xué)》形考作業(yè)1-3+話題討論1-3參考答案
- GB/T 39415.1-2020包裝袋特征性能規(guī)范方法第1部分:紙袋
- GB 26512-2021商用車駕駛室乘員保護(hù)
- Tio2材料的性質(zhì)及應(yīng)用-課件
- 教育科研專題講座課件
- 語(yǔ)文課前三分鐘演講西塘古鎮(zhèn)課件
- 建筑工程常用英語(yǔ)詞匯
- 熱工基礎(chǔ)第一章
- 翻身拍背課件
評(píng)論
0/150
提交評(píng)論