![智能終端軟件設(shè)計及開發(fā)課程報告_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/21/1b647bb8-57dd-4e35-9c34-fe10fe0a9fb4/1b647bb8-57dd-4e35-9c34-fe10fe0a9fb41.gif)
![智能終端軟件設(shè)計及開發(fā)課程報告_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/21/1b647bb8-57dd-4e35-9c34-fe10fe0a9fb4/1b647bb8-57dd-4e35-9c34-fe10fe0a9fb42.gif)
![智能終端軟件設(shè)計及開發(fā)課程報告_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/21/1b647bb8-57dd-4e35-9c34-fe10fe0a9fb4/1b647bb8-57dd-4e35-9c34-fe10fe0a9fb43.gif)
![智能終端軟件設(shè)計及開發(fā)課程報告_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/21/1b647bb8-57dd-4e35-9c34-fe10fe0a9fb4/1b647bb8-57dd-4e35-9c34-fe10fe0a9fb44.gif)
![智能終端軟件設(shè)計及開發(fā)課程報告_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/21/1b647bb8-57dd-4e35-9c34-fe10fe0a9fb4/1b647bb8-57dd-4e35-9c34-fe10fe0a9fb45.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、昆明理工大學智能終端軟件設(shè)計及開發(fā)課程報告題 目: android系統(tǒng)來電防火墻APP之編碼與 軟件測試模塊設(shè)計與實現(xiàn) 學 院: 信息工程與自動化學院 專 業(yè): 計算機科學與技術(shù) 姓 名: 李力 學 號: 201010803116 指導教師: 游進國 日 期: 2013年12月28日目錄一、摘要3二、緒論32.1 ANDROID的系統(tǒng)介紹32.2 ANDROID平臺與其它平臺的比較42.3 設(shè)計目標42.4 來電防火墻設(shè)計原則42.5 來電防火墻功能42.6 本文所做的主要工作6三、系統(tǒng)分析與設(shè)計63.1系統(tǒng)功能分析63.2創(chuàng)建數(shù)據(jù)庫文件73.3系統(tǒng)界面設(shè)計實現(xiàn)83.3.1 可視化控件設(shè)置83
2、.3.2布局83.4 Eclipse環(huán)境搭建93.4.1 開發(fā)環(huán)境搭建93.4.2 創(chuàng)建模擬器12四、程序界面與代碼實現(xiàn)134.1用戶界面134.2主程序模塊174.3 程序測試19五、結(jié)束語21一、摘要本設(shè)計是基于Android系統(tǒng)的智能手機來電防火墻,主要功能是過濾來電號碼。該系統(tǒng)包括來電攔截、攔截電話的添加和修改、攔截電話來電時的提示方式、攔截電話的回撥。該來電防火墻總體上分三大模塊:用戶界面UI設(shè)計、數(shù)據(jù)庫設(shè)計和來電后搜索數(shù)據(jù)庫拒接。用戶界面UI的設(shè)計主要有兩種方法,一種是在XML文件中靜態(tài)設(shè)置,另一種是在Java代碼中動態(tài)設(shè)置,該設(shè)計主要用的是第一種方法。該設(shè)計的數(shù)據(jù)庫采用的是SQL
3、ite,SQLite是一款輕型的嵌入式數(shù)據(jù)庫,資源占有率非常的低。程序的代碼主要是以Java為主,結(jié)合Android自己特有的類來完成整體的設(shè)計。本系統(tǒng)作為手機來電處理的主要功能之一,它的設(shè)計直接影響到手機的性能和友好性,另外,Android是一個開放的操作系統(tǒng),它已被眾多的手機廠商采用。本手機來電防火墻主要是作為拒接電話設(shè)計的。通過黑名單的新增、修改和刪除,來對手機來電進行管理。如果來電號碼不在黑名單中,則按照手機默認的情景模式響應;如果來電號碼在黑名單中,則直接掛斷該電話,并且彈出一個對話框提示用戶:來電在黑名單中,已拒接!二、緒論2.1 ANDROID的系統(tǒng)介紹Android系統(tǒng)是Goo
4、gle公司推出的一款開放平臺,Android以linux2.6為內(nèi)核,系統(tǒng)穩(wěn)定安全,應用程序使用Java語言來開發(fā),縮短了軟件開發(fā)周期,現(xiàn)在已經(jīng)被許多的手機廠商采用。Android是一個真正意義上的開放性移動設(shè)備綜合平臺,它包括操作系統(tǒng)、用戶界面、中間件和一些關(guān)鍵的平臺應用,擁有移動電話工作所需的全部軟件。Android最大特點在于它是一個開放的體系結(jié)構(gòu),具有非常好的開發(fā)和調(diào)試環(huán)境,而且還支持各種可擴展的用戶體驗,Android里面具有非常豐富的圖形系統(tǒng),提供對多媒體功能的支持和非常強大的瀏覽器。Android的主要特點體現(xiàn)在以下幾點2:(1)應用程序架構(gòu):在應用程序架構(gòu)內(nèi)已經(jīng)具備多種不同的基
5、礎(chǔ)組件,在開發(fā)應用程序時,就可以直接調(diào)用這些組件來使用,可以節(jié)省開發(fā)應用程序的心力及時間。(2)Dalvik虛擬機器:在Android平臺上所使用的Java虛擬機,不是Sun公司的標準Java虛擬機,而是使用Google自主開發(fā)的代號為Dalvik的虛擬機,它在保證API方面的兼容性的同時,針對移動手機進行了大幅度優(yōu)化,占用資源更小,運行效率更高。(3)集成的瀏覽器:集成的瀏覽器是Android內(nèi)建的瀏覽器,是以WebKit的瀏覽引擎為基礎(chǔ)所開發(fā)的。WebKit是一個開源瀏覽器網(wǎng)頁排版引擎。配合Android手機的功能,可以在瀏覽網(wǎng)頁時,達到更好的效果。(4)優(yōu)化的繪圖能力:在程序里可以用到的
6、繪圖功能分為2D和3D兩個方面。在2D方面,Android提供了一套特有的類庫(SGL);而在3D方面則是使用OpenGLES1.0(OpenGL for Embedded Systems)規(guī)范的類庫。它們是一種非??斓膱D形引擎,并且支持硬件加速。(5)SQLite數(shù)據(jù)庫:SQLite提供結(jié)構(gòu)化的數(shù)據(jù)存取。SQLite是一款輕型的數(shù)據(jù)庫,它的實際目標是嵌入式,目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用的資源很低。它能夠支持Windows、linux、Unix等主流的操作系統(tǒng),同時能夠跟很多程序語言相結(jié)合,比如PHP,Java等,還有ODBC接口,同樣比起Mysql,PostgreSQL來講,它
7、的處理速度比它們都快。它無需安裝和管理配置,它是一個存儲在單一磁盤文件中的完整數(shù)據(jù)庫,占有空間只有250KB,但支持數(shù)據(jù)大小最高達2TB。雖然很小巧,但是支持的SQL語句毫不遜色于其它開源數(shù)據(jù)庫。同時它還支持事務功能和并發(fā)處理等等。SQLite也是一套開放性的關(guān)聯(lián)式資料庫。其特點在于輕量性方面的設(shè)計結(jié)構(gòu),更適合在手機上使用。(6)多媒體的支持能力:主要用于播放媒體文件。這同時包括對音頻和視頻的支持,并支持“播放URI地址(即統(tǒng)一資源識別地址)”模式在網(wǎng)絡(luò)上直接播放的流媒體。另外支持各種通用的靜態(tài)圖像格式,例如:JPG、PNG、GIF等格式。(7)GSM技術(shù):Global System for
8、Mobile Communication,即全球移動通信系統(tǒng),是第二代移動通信技術(shù),其開發(fā)目的是讓全球各地可以使用一個移動電話網(wǎng)標準,讓用戶使用一部手機就能行遍全球。GSM技術(shù)是屬于手機硬件方面的發(fā)展,也是在開發(fā)Android應用程序時可以突出的特點之一。(8)藍牙、EDGE、3G和Wi-Fi:藍牙是一種新型、開放、低成本、短距離的無線連接技術(shù),可取代短距離的電纜,實現(xiàn)話音和數(shù)據(jù)的無線傳輸。EDGE是一種從GSM到3G的過渡技術(shù),它主要是在GSM系統(tǒng)中采用了一種新的調(diào)制解調(diào)方法,即最先進的多時隙操作和SPSK調(diào)制技術(shù)。Wi-Fi(Wireless Fidelity),即無線保真技術(shù),與藍牙技術(shù)
9、一樣,同屬于在辦公室和家庭中使用的短距離無線技術(shù)。該技術(shù)使用的是2.4GHz附近的頻段,該頻段目前尚屬無須許可的無線頻段。其目前可使用的標準有兩個,分別是IEEE802.11a和IEEE802.nb。這些通訊能力也是屬于手機硬件方面的發(fā)展,也是在開發(fā)Android應用程序時可以突出的特點之一。(9)豐富的開發(fā)環(huán)境:Android SDK提供了相當完善的程序開發(fā)環(huán)境,其開發(fā)環(huán)境包括設(shè)備模擬器、調(diào)試工具、內(nèi)存和性能檢測等方面的評估功能,另外也提供可用于Eclipse IDE的開發(fā)插件界面。2.2 ANDROID平臺與其它平臺的比較首先看一下Symbian,它存在著以下的致命不足:Symbian的主
10、導者為諾基亞、索尼愛立信等傳統(tǒng)的手機廠商,因此雖然Symbian非常成熟,但是基本上還帶有濃厚的保守色彩,應用軟件與我們?nèi)粘5腜C軟件有較大的理念差異。再者Symbian與互聯(lián)網(wǎng)的結(jié)合給人感覺仍不夠緊密,互聯(lián)網(wǎng)應用更多只是作為陪襯存在。Android平臺與此相反,移動互聯(lián)網(wǎng)是它最重要的應用,無論系統(tǒng)內(nèi)核、應用軟件還是硬件設(shè)計,幾乎都是圍繞著快捷的移動互聯(lián)網(wǎng)應用所展開的,同時Android與PC平臺存在先天的基因聯(lián)系,可以很好的實現(xiàn)與PC設(shè)備的信息互享,更容易獲得用戶的廣泛認可。與Android擁有相同屬性的還有微軟的Windows Mobile,然而臃腫的Windows平臺飽受垢病,真正喜歡它
11、的用戶并不多。至于iPhone,它只是蘋果公司的封閉平臺,用戶無法在iPhone中自行安裝應用程序。所有的東西都應該蘋果自己設(shè)計制造,從而確保利潤不被第三方分享。蘋果自己為iPhone開發(fā)了嵌入式系統(tǒng)以及完整的應用,但它干脆都不宣揚iPhone的軟件設(shè)計,而是將iPhone作為一個包含軟硬件賣點的手機產(chǎn)品出售。同樣,蘋果式的奢華與時尚讓iPhone大獲成功,以至于成為手機市場的風向標。與蘋果相反,Android則是走完全開放的道路,這種模式的巨大優(yōu)點在PC軟件領(lǐng)域已為業(yè)界所公認。自由軟件高度活躍,錯誤可以被快速修改,新的應用和新的創(chuàng)意可以不斷出現(xiàn)。自由的屬性讓Android的錯誤可以快速的修正
12、,從而提高系統(tǒng)的可靠性與安全性。Android平臺的另外一個優(yōu)勢是標準化和跨平臺。作為開發(fā)平臺,可以為任何手機廠商自由選擇一廠商對代碼做出修改,那么修改的結(jié)果必須迅速返回,確保系統(tǒng)的統(tǒng)一性。其次,Android的應用都基于Java開發(fā),Java具有一次編寫、到處運行的跨平臺屬性,換句話說,開發(fā)者只要編寫一遍程序,就能夠?qū)崿F(xiàn)在所有Android設(shè)備中運行,真正做到了硬件無關(guān)性,這顯然大幅度降低了開發(fā)者的負擔。再者,Android提供標準化的API和SDK開發(fā)包,手機廠商可以根據(jù)需要自行開發(fā)或收納已有的程序,從而打造出富有特色的Android平臺。這對手機廠商來說,它可以完全不管軟件技術(shù)之內(nèi)的問題
13、,快速整合出適合自己的一套平臺,然后將精力集中在硬件設(shè)計上面,可以在短時間內(nèi)快速推出新品,對開發(fā)者來說,標準化的Android絕對是令人愉快的選擇。Android和操作系統(tǒng)進行了緊密地整合,從而可以方便地使用操作系統(tǒng)的功能。并且從圖形應用界面的開發(fā)上來看,Android可以使用配置文件來描述圖形控件的布局,用Java代碼編寫實際響應代碼,比用AWT/Swing編寫圖形應用程序要方便得多。當然由于Android已經(jīng)提供了大量現(xiàn)成的應用API和應用工具,使得常規(guī)智能手機功能的開發(fā)變得非常容易和簡單。2.3.設(shè)計目標本手機來電防火墻是以拒接電話為主要的設(shè)計目標,通過黑名單的新增、修改和刪除,對手機來
14、電進行管理。如果來電號碼不在黑名單中,則按照手機默認的情景模式響應;如果來電號碼在黑名單中,則直接掛斷該電話,并且彈出一個對話框提示用戶:來電在黑名單中,已拒接。2.4 來電防火墻設(shè)計原則本系統(tǒng)在設(shè)計的時候要考慮的因素主要遵循以下幾條原則:(1)目的明確。一個好的程序必須有明確合理的、適用的目的。本程序的主要目的是實現(xiàn)對號碼的屏蔽。(2)功能實用。一個軟件所提供的功能應該是切合實際需求的。本程序?qū)崿F(xiàn)的是在黑名單中的號碼來電后,直接將其掛掉,有很好的實用價值。 (3)界面簡單。軟件界面設(shè)計簡潔,美觀,人性化,滿足用戶的基本要求。 2.5 來電防火墻功能該來電防火墻總體上分三大模塊:用戶界面UI設(shè)
15、計、數(shù)據(jù)庫設(shè)計和主程序模塊。用戶界面UI的設(shè)計主要有兩種方法,一種是在XML文件中靜態(tài)設(shè)置,另一種是在Java代碼中動態(tài)設(shè)置,該設(shè)計主要用的是第一種方法。該設(shè)計的數(shù)據(jù)庫采用的是SQLite,SQLite是一款輕型的嵌入式數(shù)據(jù)庫,資源占有率非常的低。程序的代碼主要是以Java為主,結(jié)合Android自己特有的類來完成整體的設(shè)計。2.6 本文所做的主要工作本來電防火墻界面設(shè)計主要采用的是靜態(tài)的XML文件設(shè)置,后臺數(shù)據(jù)庫是用的SQLite,通過用戶UI與數(shù)據(jù)庫連接將前后臺連接起來,本文主要做了以下工作:第一章緒論對Android平臺進行簡單介紹,描述了Android的發(fā)展、前景和優(yōu)勢,總體對Andr
16、oid的認識。第二章主要介紹在本次程序開發(fā)中所使用的兩種技術(shù)XML、SQLite本為今后的程序設(shè)計工作做好鋪墊。第三章對數(shù)據(jù)庫和程序的設(shè)計進行了介紹。第四章對程序的各個模塊進行詳細介紹,并且對設(shè)計的調(diào)試和測試以及設(shè)計過程中出現(xiàn)的問題進行了介紹。結(jié)束語是對這一段時間的設(shè)計進行總結(jié),總結(jié)一下自己的經(jīng)驗和教訓。三、系統(tǒng)分析與設(shè)計本來電防火墻在Eclipse下編譯完成,并使用XML腳本語言結(jié)合Java代碼編寫整體程序,前臺界面設(shè)計采用的是XML靜態(tài)文件,并且在代碼中有相應的動態(tài)設(shè)置,后臺數(shù)據(jù)庫采用了SQLite,并通過一系列的設(shè)計使來電防火墻逐步趨于完善。3.1系統(tǒng)功能分析本來電防火墻主要包括三個模塊
17、:用戶界面UI、數(shù)據(jù)庫模塊和主程序模塊。本手機來電防火墻主要是作為拒接電話設(shè)計的。通過黑名單的新增、修改和刪除,來對手機來電進行管理。如果來電號碼不在黑名單中,則按照手機默認的情景模式響應;如果來電號碼在黑名單中,則直接掛斷該電話,并且彈出一個對話框提示用戶:來電在黑名單中,已拒接。本手機來電防火墻的三個模塊如下圖3-1所示:來電防火墻號碼防騷擾數(shù)據(jù)接入用戶界面騷擾攔截分析號碼退出界面黑名單界面動態(tài)主界面圖3-1 來電防火墻系統(tǒng)結(jié)構(gòu)圖本手機來電防火墻開發(fā)的時候,我首先繪制的是所有用戶界面UI的整體框架圖,如3-2所示:黑名單新增幫助文本黑名單幫助退出修改刪除確定退出?確定取消圖3-2 整體框架
18、圖3.2創(chuàng)建數(shù)據(jù)庫文件本程序中,后臺數(shù)據(jù)庫用的SQLite數(shù)據(jù)庫,只用到了黑名單這一個表格。黑名單主要是用來保存拒接號碼的。包括編號、號碼簡介兩個字段。其中_id(編號)設(shè)定為主鍵,number(號碼)是必要字段,編碼是自動獲取,從1開始以整數(shù)上升。黑名單表結(jié)構(gòu)如表3-1所示:表3-1 用戶注冊表字段數(shù)據(jù)類型長度允許空_id整型1否number整型4否3.3系統(tǒng)界面設(shè)計實現(xiàn)本程序的用戶界面設(shè)計采用的是XML文件,涉及到主界面,黑名單界面等實現(xiàn)。3.3.1 可視化控件設(shè)置可視化控件4是直接與用戶交互的對象。Android除了支持自定義控件以外,自身也提供了非常豐富的各種可視化控件。這些控件大都已
19、經(jīng)完整地實現(xiàn)其功能,所以一般情況下開發(fā)人員只需要設(shè)置它們的屬性,就可以定義一個可交互的用戶界面控件了。設(shè)置控件屬性的方法有兩種:一種是在XML文件中靜態(tài)設(shè)置,另一種則是在Java代碼中動態(tài)設(shè)置。要創(chuàng)建用戶界面,首先我們必須了解的是View類。View類是可視化控件的基類,它主要提供了控件繪制和事件處理的方法。而可視化控件,是指重新實現(xiàn)了View的繪制和事件處理方法并且最終與用戶交互對象,如文本顯示、按鈕等。ViewGroup類也是繼承自View類,其最大的特點是可以有子控件。子控件是View類的對象,當然也可以是ViewGroup類的對象,即ViewGroup可以嵌套。實際上,這是采用了設(shè)計模
20、式中的Composite模式,系統(tǒng)把對象以樹形結(jié)構(gòu)組織起來,從而達到了“部分整體”的層次結(jié)構(gòu),使得客戶端對單個對象和組合對象的使用具有一致性。在Android中除了想Listview這種需要有子控件的控件類繼承自ViewGroup以外,還有Layout類也同樣繼承自ViewGroup。需要說明的是,布局默認情況下并不直接顯示給用戶,其主要功能在于控制子控件在屏幕上擺放的位置。所以通??梢姷腁ndroid程序都是可視化控件和布局組成的。3.3.2布局當我們手握著一些已經(jīng)被設(shè)置好了的控件的時候,就該思考怎樣按照你的設(shè)計把他們放在Android設(shè)備的屏幕上了。Layout就是負責管理控件在屏幕的位置
21、的類。Android SDK 已經(jīng)內(nèi)置了幾種簡單的布局2模型,通過這幾種布局模型的組合、嵌套并設(shè)置子控件的布局參數(shù),我們完全可以構(gòu)建出各種復雜的用戶界面。1. 線性布局6線性布局應該是應用程序中最常用的布局方式,他提供了控件水平或者垂直排列的模型,同時我們可通過設(shè)置子控件的weight布局參數(shù)控制各個控件在布局中的相對大小。2. 表格布局表格布局模型以行列的形式管理子控件,每一行為一個TableRow的對象,也可為一個View的對象。TableRow可添加子控件,每添加一個子控件為一列。3. 相對布局相對布局的子控件會根據(jù)它們所設(shè)置的參照控件和參數(shù)進行相對布局。參照控件可以是父控件,也可以是其
22、他子控件,但被參照的控件必須要在參照它的控件之前定義。4. 單幀布局單幀布局最簡單的布局模型,在這種布局下每個添加的子控件都被放在布局的左上角,并覆蓋在前一個控件的上層。5. 坐標布局坐標布局的子控件需要制定相對于此坐標布局的橫、縱坐標值,否則將會像FrameLayout那樣被排在左上角。手機應用需要適用于不同的屏幕大小,而這樣布局模型不能自適應屏幕尺寸大小,所以應用的相當少。3.4 Eclipse環(huán)境搭建數(shù)據(jù)庫的連接方式主要有兩種:ODBC連接和OLE DB連接。3.4.1 開發(fā)環(huán)境搭建1. 開始Eclipse3,然后選擇 Help > Software Updates > Fi
23、nd and Install,如圖3-3圖3-3 Find and Install2. 對話框出現(xiàn)后,選擇 Search for new features to install 點擊 Next。如圖3-4圖3-4 Search for new features to install3. 點擊New Remote Site。如圖3-5圖3-5 New Remote Site4. 在對話框中,輸入遠程站點的名字,輸入站點如下:https:/dl- 點擊Ok5. 你可以看到新的站點添加到搜索列表中(并檢查),點擊Finish。6. 在下面的搜索結(jié)果對話框,選擇復選框 Android Plugin &
24、gt; Developer Tools。 它將會檢查特性: "Android Developer Tools"和"Android Editors"。 Android 編輯器的特性是可選的,但我們推薦安裝它,如果你選擇安裝,需要前面提到的WST插件,點擊 Next。如圖3-6:圖3-6 搜索結(jié)果對話框7. 閱讀許可協(xié)議,然后選擇接受許可協(xié)議,點擊 Next。8. 點擊 Finish。9. ADT插件沒有簽名,你可以點擊“Install All“來安裝所有東西。10. 重啟 Eclipse。3.4.2 創(chuàng)建模擬器1打開EclipsewindowsAndroi
25、d SDK and AVD Manager4。如圖3-7:圖3-7 創(chuàng)建模擬器從 “Android SDK and AVD Manager”窗口的左側(cè)選擇 “Virtual Devices”。1)選擇 “New”。2)輸入一個AVD 名稱。3)選擇一個 Target。4)輸入模擬的 SD Card 的容量大小。5)選擇一個外觀皮膚 Skin。1. 讓模擬器外觀大小像 G1,MyTouch 3G,Hero,等手機設(shè)備。保留默認的skin設(shè)置值。2. 模擬 Motorola Droid。選擇 WVGA 854。3. 模擬其他的設(shè)備。選擇列表內(nèi)其他的選項。6)然后 “Create AVD”。四、程序
26、界面與代碼實現(xiàn)4.1用戶界面(1)該模塊主要是各個用戶界面的。程序主界面如4-1所示:圖4-1主程序界面該界面通過mian.xml文件來靜態(tài)的實現(xiàn),mian.xml代碼如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height=&qu
27、ot;fill_parent" android:gravity="center" ><Buttonandroid:id="+id/button1_id" android:layout_width="280dip" android:layout_height="wrap_content" android:text="string/button1" android:gravity="center" /> <Buttonandroid:id=&qu
28、ot;+id/button3_id" android:layout_width="280dip" android:layout_height="wrap_content" android:text="string/button3" android:gravity="center" /> <Buttonandroid:id="+id/button4_id" android:layout_width="280dip" android:layout_heigh
29、t="wrap_content" android:text="string/button4" android:gravity="center"/></LinearLayout>(2)點擊黑名單后,會打開黑名單界面 黑名單界面如圖4-2所示:圖4-2 黑名單界面該界面主要相關(guān)java代碼如下:public class blacklist extends Activity private blackToDoDB myToDoDB; private Cursor myCursor; private ListView myL
30、istView; private EditText myEditText; private int _id; String pnumber; protected final static int MENU_ADD = Menu.FIRST; protected final static int MENU_EDIT = Menu.FIRST + 1; protected final static int MENU_DELETE = Menu.FIRST + 2; Override myListView = (ListView) this.findViewById(R.id.myListView)
31、; myEditText = (EditText) this.findViewById(R.id.myEditText); myToDoDB = new blackToDoDB(this); /* 取得DataBase里的數(shù)據(jù) */ myCursor = myToDoDB.select(); int ccount=myCursor.getCount(); pnumber=new Stringccount; for(int i=0;i<ccount;i+) myCursor.moveToPosition(i); pnumberi=myCursor.getString(1); /* new
32、SimpleCursorAdapter并將myCursor傳入, 顯示數(shù)據(jù)的字段為todo_text */ SimpleCursorAdapter adapter = new SimpleCursorAdapter (this, R.layout.list, myCursor, new String blackToDoDB.FIELD_TEXT , new int R.id.listTextView1 ); myListView.setOnItemSelectedListener (new AdapterView.OnItemSelectedListener() Override public
33、 void onItemSelected (AdapterView<?> arg0, View arg1, int arg2, long arg3) /* getSelectedItem所取得的是SQLiteCursor */ SQLiteCursor sc = (SQLiteCursor) arg0.getSelectedItem(); _id = sc.getInt(0); myEditText.setText(sc.getString(1); Override public void onNothingSelected(AdapterView<?> arg0) )
34、; private void addTodo() if (myEditText.getText().toString().equals("") return ;if( judge(myEditText.getText().toString(),pnumber) Toast.makeText(getApplicationContext(), "該號碼已經(jīng)存在!" , Toast.LENGTH_SHORT).show(); /* 添加數(shù)據(jù)到數(shù)據(jù)庫 */ else myToDoDB.insert(myEditText.getText().toString();
35、 /* 重新查詢 */ myCursor.requery(); /* 重新整理myListView */ myListView.invalidateViews(); myEditText.setText(""); _id = 0; private void deleteTodo() if (_id = 0) return; new AlertDialog.Builder(blacklist.this) /*彈出窗口的最上頭文字*/ .setTitle(R.string.deltiltei) /*設(shè)置彈出窗口的圖式*/ / .setIcon(R.drawable.hot) /
36、*設(shè)置彈出窗口的信息*/ .setMessage(R.string.del_msg) .setPositiveButton(R.string.close_ok, new DialogInterface.OnClickListener() public void onClick (DialogInterface dialoginterface, int i) /* 刪除數(shù)據(jù) */ myToDoDB.delete(_id); myCursor.requery(); myListView.invalidateViews(); myEditText.setText(""); _id
37、 = 0; ).setNegativeButton(R.string.close_no, new DialogInterface.OnClickListener() /*設(shè)置跳出窗口的返回事件*/ public void onClick(DialogInterface dialoginterface, int i) ).show(); 4.2主程序模塊主程序模塊包括了各個界面的切換操作,來電后把來電號碼與黑名單中的數(shù)據(jù)進行比較、判斷的代碼。攔截后的記錄界面如圖4-6所示圖4-6 攔截后的記錄界面來電后,手機自動判斷來電號碼是否在數(shù)據(jù)庫中,如果存在則掛斷電話。主要代碼如下:public void
38、 onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); /Intent intent=new Intent(this,Firewall1.class); /sendBroadcast(intent); /使用數(shù)據(jù)庫 blackToDoDB resolver = new blackToDoDB(this); Cursor cur=resolver.select(); int ccount=cur.getCount(); pnumber=new S
39、tringccount; for(int i=0;i<ccount;i+) cur.moveToPosition(i); pnumberi=cur.getString(1); if (audioManager != null) /*設(shè)置手機為待機時,響鈴為正常*/ audioManager.setRingerMode(AudioManager. RINGER_MODE_NORMAL); audioManager.getStreamVolume( AudioManager.STREAM_RING); catch(Exception e) / mTextView01.setText(e.toString(); e.printStackTrace(); break; /*取得手機狀態(tài)是通話中*/ case TelephonyManager.CALL_STATE_OFFHOOK: / mTextView01.setText(R.string.str_CALL_STATE_OFF
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球商店可視化工具行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國單立柱托盤堆垛機行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 嚴守黨的生活紀律維護黨員良好形象黨員教育培訓課件
- 作用方法局麻作用吸收作用表面麻醉浸潤麻醉麻醉蛛網(wǎng)膜下腔麻醉硬膜外麻醉講解
- 醫(yī)學儀器外貿(mào)購銷合同范本年
- 土地房屋轉(zhuǎn)讓簡單合同范本
- 服裝設(shè)計與生產(chǎn)加工合同
- 項目承包服務合同范本
- 財務管理系統(tǒng)開發(fā)合作合同
- 店面房出租經(jīng)營合同書
- 質(zhì)檢工作計劃書2025質(zhì)檢部工作計劃范文
- 《復旦大學》課件
- 承包魚塘維修施工合同范例
- 2024年浙江省公務員錄用考試《行測》題(A類)
- 2024版《安全生產(chǎn)法》考試題庫附答案(共90題)
- 疥瘡病人的護理
- 2024版《糖尿病健康宣教》課件
- 公務員2012年國考《申論》真題卷及答案(地市級)
- 新員工三級安全教育考試試題參考答案
- 35kV輸變電工程(變電站、輸配電線路建設(shè))技術(shù)方案
- 數(shù)學史簡介課件可編輯全文
評論
0/150
提交評論