




版權(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.xmllinearlayout android:id=+id/linearlayout01 android:layout_width=fill_parent android:layout_height=fill_parent xmlns:android= strings.xml hello world, mcy579! mcy
3、579 重要通知保護(hù)視力應(yīng)用已經(jīng)運(yùn)行1分鐘,請(qǐng)注意休息!視力保護(hù)程序androidmainmest.xml mcy579.javapackage cn.mcy579;import java.util.arraylist;import java.util.hashmap;import android.app.activity;import android.content.contentvalues;import android.content.intent;import android.database.cursor;import android.database.sqlite.sqliteda
4、tabase;import android.graphics.color;import android.os.bundle;import android.view.menu;import android.view.menuitem;import android.view.view;import android.widget.adapterview;import android.widget.adapterview.onitemclicklistener;import android.widget.edittext;import android.widget.listview;import an
5、droid.widget.simpleadapter;import android.widget.textview;import android.widget.toast;public class mcy579 extends activity private sqlitedatabase msqlitedatabase;private edittext input; private listview listview;final static int menu_add= menu.first;final static int menu_modify = menu.first+1;final
6、static int menu_delet = menu.first+2;private string current_even; /* called when the activity is first created. */ override public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); setcontentview(r.layout.main); startservice(new intent(this, m1cy579.class); input = (editte
7、xt) findviewbyid(r.id.edittext01); listview=(listview)findviewbyid(r.id.listview01);msqlitedatabase=this.openorcreatedatabase(mycalendar.db,mode_private , null); try msqlitedatabase.execsql(create table calendar(_id integer primary key,event_item text); catch(exception ex) system.out.println(calenda
8、r表已存在); listview_show(); listview.setonitemclicklistener(new onitemclicklistener()public void onitemclick(adapterview arg0, view v, int arg2,long arg3) / todo auto-generated method stubtextview tv=(textview) v.findviewbyid(r.id.textview01);current_even=tv.gettext().tostring();); overrideprotected vo
9、id ondestroy() / todo auto-generated method stubmsqlitedatabase.close();super.ondestroy();private void listview_show() / todo auto-generated method stub arraylisthashmap list = new arraylisthashmap(); cursor c=msqlitedatabase.query(true,calendar, new stringevent_item, null, null, null, null, null, n
10、ull); if(c=null)return;if(c.getcount()=0)toast.maketext(mcy579.this,沒(méi)有資料,toast.length_short).show();elsec.movetofirst();hashmap 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); /綁
11、定一個(gè)簡(jiǎn)單的適配器 listview.setadapter(new simpleadapter(mcy579.this,/第一個(gè)參數(shù)為context /第二個(gè)參數(shù)為裝入內(nèi)容的arraylistlist, /第三個(gè)參數(shù)為item布局文件r.layout.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) / t
12、odo auto-generated method stubmenu.add(0,menu_add,0,添加);menu.add(0,menu_modify,1,修改);menu.add(0,menu_delet,2,刪除);return super.oncreateoptionsmenu(menu);override public boolean onoptionsitemselected(menuitem item) switch(item.getitemid() case menu_add: contentvalues newrow=new contentvalues(); newrow
13、.put(event_item, input.gettext().tostring(); msqlitedatabase.insert(calendar, null, newrow); listview_show(); return true; case menu_modify: msqlitedatabase.execsql(delete from calendar where event_item=+current_even+); contentvalues newrow01=new contentvalues(); newrow01.put(event_item, input.gette
14、xt().tostring(); msqlitedatabase.insert(calendar, null, newrow01); listview_show(); return true; case menu_delet: msqlitedatabase.execsql(delete from calendar where event_item=+current_even+); listview_show(); return false; m1cy579.javapackage cn.mcy579;import java.util.timer;import java.util.timert
15、ask;import android.app.notification;import android.app.notificationmanager;import android.app.pendingintent;import android.app.service;import android.content.context;import android.content.intent;import android.os.ibinder;public class m1cy579 extends serviceprivate timer timer;overridepublic ibinder
16、 onbind(intent arg0) / todo auto-generated method stubreturn null; override public void oncreate() super.oncreate(); timer = 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()
17、string ns = context.notification_service; / 獲得通知管理器 notificationmanager manager = (notificationmanager) getsystemservice(ns); / 創(chuàng)建通知 notification notification = new notification( r.drawable.icon, gettext(r.string.ticker_text), system.currenttimemillis(); / 定義通知的標(biāo)題 charsequence contenttitle = gettext
18、(r.string.content_title); / 定義通知的內(nèi)容 charsequence contenttext = gettext(r.string.content_text); / 創(chuàng)建intent對(duì)象 intent intent = 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, contenti
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 成本控制與效益分析-第2篇-全面剖析
- 線段樹(shù)在多源數(shù)據(jù)融合下的診斷準(zhǔn)確性提升-全面剖析
- 移動(dòng)應(yīng)用安全檢測(cè)技術(shù)-全面剖析
- 紡織物酶解技術(shù)改進(jìn)-全面剖析
- 移動(dòng)支付安全行為分析-全面剖析
- 家政洗沙發(fā)合同范本
- 大數(shù)據(jù)分析助力精準(zhǔn)市場(chǎng)定位-全面剖析
- 數(shù)字貨幣在金融監(jiān)管中的新挑戰(zhàn)-全面剖析
- 托幼中心協(xié)議合同范本
- 會(huì)漂浮的玩具(教學(xué)設(shè)計(jì))-2024-2025學(xué)年贛美版美術(shù)二年級(jí)上冊(cè)
- 振動(dòng)理論習(xí)題答案
- 創(chuàng)新學(xué)習(xí)方法助力2024年ESG考試的試題及答案
- 做最勇敢的自己
- 明渠均勻流計(jì)算公式
- 醫(yī)療護(hù)理品管圈QCC成果匯報(bào)之提高住院病人健康宣教的知曉率(問(wèn)題解決型)
- 拳擊單招考試評(píng)分標(biāo)準(zhǔn)
- DBJ51 014-2021 四川省建筑地基基礎(chǔ)檢測(cè)技術(shù)規(guī)程
- 企業(yè)標(biāo)準(zhǔn)化管理手冊(cè)(完整版)
- 小學(xué)校班子運(yùn)行情況
- 《惡臭污染物排放標(biāo)準(zhǔn)》(GB14554-93)
- 機(jī)關(guān)單位公章使用登記表
評(píng)論
0/150
提交評(píng)論