版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、<p> 河北農(nóng)業(yè)大學現(xiàn)代科技學院</p><p> 本科畢業(yè)論文(設計)</p><p> 題 目: 基于Android系統(tǒng)的家庭理財通軟件 </p><p> -----支出模塊的設計 </p><p> 學 部: 工程技術(shù)學部 <
2、;/p><p> 專業(yè)班級: 計算機科學與技術(shù)0903 </p><p> 學 號: 2009614070323 </p><p> 學生姓名: 于淼 </p><p> 指導教師姓名: 趙洋 </p><
3、p> 指導教師職稱: 講師 </p><p> 2013 年 5 月 12 日</p><p><b> 摘要</b></p><p> 全球經(jīng)濟的蓬勃發(fā)展帶來了金融理財領域的巨大變革和創(chuàng)新,新的金融工具和理財觀點不斷產(chǎn)生,迅速地刷新著家庭與個人傳統(tǒng)的理財觀念。改革開放以來,我國社會經(jīng)濟的發(fā)展和
4、居民收入水平得到了很大的提高,家庭理財活動已成為居民生活的重要內(nèi)容。人們迫切需要一個能充分利用計算機優(yōu)勢,并可以管理家庭財務的軟件平臺,利用這個平臺使得個人的財務有了明晰的收支情況的系統(tǒng)。</p><p> 家庭理財軟件可以有效的記錄和管理家庭的支出,合理規(guī)劃和支配家庭資金,是家庭理財?shù)暮脦褪帧@胊ndroid技術(shù),使家庭理財逐步信息化、便捷化,可以隨時隨地記錄生活支出,有效的避免了遺漏。它更能隨時隨地查看,
5、方便隨時掌握家庭財務問題。使用家庭理財軟件管理家庭財務,不經(jīng)提高了工作效率,更能大大的提高了其安全性。</p><p> 家庭理財系統(tǒng)采用android作為開發(fā)環(huán)境,主要包括添加記賬、我的賬單、分析報表、支出科目四個模塊。用戶能夠通過這些模塊所提供的功能,完成相應的操作,滿足家庭內(nèi)部對家庭理財?shù)男枨蟆?lt;/p><p> 關(guān)鍵詞:家庭理財 Android 支出 查詢</p&g
6、t;<p><b> Abstract</b></p><p> The vigorous development of the global economy has brought great changes and innovation in financial field, new financial instruments and financial point o
7、f view continuously, quickly refresh the traditional family and personal financial management concepts.Since the refrom and opening up ,China's social and economic development and people's income level has been g
8、reatly improved, family financial management has become an important part of life.There was an urgent need to make full use of advant</p><p> Family financial management software can record and management o
9、f family expenses, reasonable planning and dominate the family money, family financial management is a good helper.The use of Android technology, the family financial management step by step information, convenient, can
10、whenever and wherever possible to record life expenditure, effectively avoid the omission. It can whenever and wherever possible to view, at any time convenient to master the family financial problems. The use of fam<
11、/p><p> Family financial management system uses Android as the development environment, including adding bookkeeping, my bills, analysis report, expense account four modules.The user can use the functions prov
12、ided by these modules, complete the corresponding operation, to meet the demand of family financial management within the family.</p><p> Keywords: family financial Android expenses query</p><
13、;p><b> 目錄</b></p><p> 1.緒論...............................................................1</p><p> 1.1開發(fā)語言概述..................................................1</p><p
14、> 1.1.1 JAVA簡介...............................................1</p><p> 1.1.2 JAVA語言特點...........................................1</p><p> 1.1.3 JAVA語言特性....................................
15、.......1</p><p> 1.2Android概述..................................................3</p><p> 1.2.1 Android簡介............................................3</p><p> 1.2.2 Android系統(tǒng)優(yōu)勢...
16、.....................................3</p><p> 1.2.3 Android編程環(huán)境介紹....................................4</p><p> 2. 嵌入式關(guān)系型SQLite數(shù)據(jù)庫存儲數(shù)據(jù)................................6</p><p> 2.
17、1 SQLite簡介...................................................6</p><p> 2.2 Andriod操作SQLlite數(shù)據(jù)庫....................................6</p><p> 2.3 本程序中的SQLlite....................................
18、........7</p><p> 3.家庭理財通軟件簡介.................................................8</p><p> 4.家庭理財通軟件支出模塊.............................................8</p><p> 4.1登錄模塊...............
19、........................................8</p><p> 4.1.1登錄界面..................................................8</p><p> 4.2主界面模塊.....................................................9</p>
20、<p> 4.2.1主界面....................................................9</p><p> 4.3添加記賬模塊...................................................10</p><p> 4.3.1添加記賬界面............................
21、..................10</p><p> 4.3.2添加記賬實現(xiàn)代碼..........................................12</p><p> 4.4我的賬單模塊...................................................12</p><p> 4.4.1我的賬單界面.
22、.............................................12</p><p> 4.4.2賬單列表實現(xiàn)代碼..........................................13</p><p> 4.4.2.1賬單列表數(shù)據(jù)庫查找...................................13</p><p
23、> 4.4.2.2查看賬單詳情.........................................15</p><p> 4.4.2.3編輯賬單.............................................15</p><p> 4.4.2.4刪除賬目...........................................
24、..16</p><p> 4.5分析報表模塊.................................................16</p><p> 4.6支出科目模塊....................................................17</p><p> 4.6.1支出科目界面.............
25、.................................17</p><p> 4.6.2支出科目實現(xiàn)代碼..........................................19</p><p> 4.6.2.1支出科目數(shù)據(jù)庫查找...................................19</p><p> 4.6.2.
26、2查看支出科目.........................................19</p><p> 4.6.2.3刪除支出科目.........................................20</p><p> 4.6.2.4修改支出科目.........................................20</p>
27、<p> 4. 總結(jié)................................................................21</p><p> 5. 致謝................................................................22</p><p> 6. 參考文獻..............
28、..............................................22</p><p><b> 1. 緒論</b></p><p> 本程序是在Eclipse開發(fā)環(huán)境中,運用軟件工程的設計思想,進行Android桌面應用程序的開發(fā)。本程序的主要功能包括對個人收入及支出情況進行增、刪、改、查等操作,并通過運用Android自帶的SQLLi
29、te數(shù)據(jù)庫進行數(shù)據(jù)的查詢。</p><p> 1.1 開發(fā)語言概述 </p><p> 1.1.1 JAVA簡介</p><p> Java是由Sun Microsystems公司于 1995年5月推出的Java面向?qū)ο蟪绦蛟O計語言(以下簡稱Java語言)和Java平臺的總稱。由James Gosling和同事們共同研發(fā),并在1995年正式推出。用Java實現(xiàn)
30、的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平臺、動態(tài)的Web、Internet計算。從此,Java被廣泛接受并推動了Web的迅速發(fā)展,常用的瀏覽器均支持Javaapplet。另一方面,Java技術(shù)也不斷更新。(2010年Oracle公司收購了SUN)</p><p> Java由四方面組成:Java編程語言、Java類文件格式、Java虛擬機和Java應用程序接口(Java A
31、PI)。平臺</p><p> Java平臺由Java虛擬機(Java Virtual Machine,簡稱JVM)和Java 應用編程接口(Application Programming Interface,簡稱API)構(gòu)成。Java應用編程接口為Java應用提供了一個獨立于操作系統(tǒng)的標準接口,可分為基本部分和擴展部分。在硬件或操作系統(tǒng)平臺上安裝一個Java平臺之后,Java應用程序就可運行。Java平臺已經(jīng)
32、嵌入了幾乎所有的操作系統(tǒng)。這樣Java程序可以只編譯一次,就可以在各種系統(tǒng)中運行。Java應用編程接口已經(jīng)從1.1x版發(fā)展到1.2版。常用的Java平臺基于Java1.4,最近版本為Java1.7。</p><p> Java分為三個體系J2SE(Java2 Platform Standard Edition,java平臺標準版),J2EE(Java 2 Platform,Enterprise Edition,
33、java平臺企業(yè)版),J2ME(Java 2 Platform Micro Edition,java平臺微型版)。 </p><p> 1.1.2 JAVA語言特點</p><p> Java編程語言的風格十分接近C、C++語言。Java是一個純粹的面向?qū)ο蟮某绦蛟O計語言,它繼承了 C++語言面向?qū)ο蠹夹g(shù)的核心。Java舍棄了C語言中容易引起錯誤的指針(以引用取代)、運算符重載(ope
34、rator overloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理而擔憂。在 Java 1.5 版本中,Java 又引入了泛型編程(Generic Programming)、類型安全的枚舉、不定長參數(shù)和自動裝/拆箱等語言特性。</p><p> Java不同于一般的編譯執(zhí)行計算機語言和解釋執(zhí)行計算機語言。它首先將源代碼編譯
35、成二進制字節(jié)碼(bytecode),然后依賴各種不同平臺上的虛擬機來解釋執(zhí)行字節(jié)碼。從而實現(xiàn)了“一次編譯、到處執(zhí)行”的跨平臺特性。不過,每次的執(zhí)行編譯后的字節(jié)碼需要消耗一定的時間,這同時也在一定程度上降低了 Java 程序的運行效率。</p><p> 編輯Java源代碼可以使用任何無格式的文本編輯器,在Windows操作系統(tǒng)上可以使用記事本(Notepad)、EditPlus等程序,在Linux平臺上可使用V
36、I工具等。</p><p> 1.1.3 JAVA語言特性</p><p> 1、Java語言是簡單的。Java語言的語法與C語言和C++語言很接近,使得大多數(shù)程序員很容易學習和使用Java[7]。另一方面,Java丟棄了C++中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強制類型轉(zhuǎn)換。特別地,Java語言不使用指針,并提供了自動的廢料收集,使得程序員不必為
37、內(nèi)存管理而擔憂。</p><p> 2、Java語言是面向?qū)ο蟮?。Java語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實現(xiàn)機制(關(guān)鍵字為implements)。Java語言全面支持動態(tài)綁定,而C++語言只對虛函數(shù)使用動態(tài)綁定??傊?,Java語言是一個純的面向?qū)ο蟪绦蛟O計語言。</p><p> 3、Java語言是分布式的
38、。Java語言支持Internet應用的開發(fā),在基本的Java應用編程接口中有一個網(wǎng)絡應用編程接口(java net),它提供了用于網(wǎng)絡應用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠程方法激活)機制也是開發(fā)分布式應用的重要手段。</p><p> 4、Java語言是健壯的。Java的強類型機制、異常處理、垃圾的自動收集等是Java程序健壯性
39、的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。</p><p> 5、Java語言是安全的。Java通常被用在網(wǎng)絡環(huán)境中,為此,Java提供了一個安全機制以防惡意代碼的攻擊。除了Java語言具有的許多安全特性以外,Java對通過網(wǎng)絡下載的類具有一個安全防范機制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查,并提供安全管理機制(類
40、SecurityManager)讓Java應用設置安全哨兵。</p><p> 6、Java語言是體系結(jié)構(gòu)中立的。Java程序(后綴為java的文件)在Java平臺上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件),然后可以在實現(xiàn)這個Java平臺的任何系統(tǒng)中運行。這種途徑適合于異構(gòu)的網(wǎng)絡環(huán)境和軟件的分發(fā)。</p><p> 7、Java語言是可移植的。這種可移植性來源于體系結(jié)
41、構(gòu)中立性,另外,Java還嚴格規(guī)定了各個基本數(shù)據(jù)類型的長度。Java系統(tǒng)本身也具有很強的可移植性,Java編譯器是用Java實現(xiàn)的,Java的運行環(huán)境是用ANSI C實現(xiàn)的。</p><p> 8、Java語言是解釋型的。如前所述,Java程序在Java平臺上被編譯為字節(jié)碼格式,然后可以在實現(xiàn)這個Java平臺的任何系統(tǒng)中運行。在運行時,Java平臺中的Java解釋器對這些字節(jié)碼進行解釋執(zhí)行,執(zhí)行過程中需要的類在
42、聯(lián)接階段被載入到運行環(huán)境中。</p><p> 9、Java是高性能的。與那些解釋型的高級腳本語言相比,Java的確是高性能的。事實上,Java的運行速度隨著JIT(Just-In-Time)編譯器技術(shù)的發(fā)展越來越接近于C++。</p><p> 10、Java語言是多線程的。在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子(孫)類來創(chuàng)建。通常有兩種方法來創(chuàng)建線程:
43、其一,使用型構(gòu)為Thread(Runnable) 的構(gòu)造子將一個實現(xiàn)了Runnable接口的對象包裝成一個線程,其二,從Thread類派生出子類并重寫run方法,使用該子類創(chuàng)建的對象即為線程。值得注意的是Thread類已經(jīng)實現(xiàn)了Runnable接口,因此,任何一個線程均有它的run方法,而run方法中包含了線程所要運行的代碼。線程的活動由一組方法來控制。Java語言支持多個線程的同時執(zhí)行,并提供多線程之間的同步機制(關(guān)鍵字為synchr
44、onized)。</p><p> 11、Java語言是動態(tài)的。Java語言的設計目標之一是適應于動態(tài)變化的環(huán)境。Java程序需要的類能夠動態(tài)地被載入到運行環(huán)境,也可以通過網(wǎng)絡來載入所需要的類。這也有利于軟件的升級。另外,Java中的類有一個運行時刻的表示,能進行運行時刻的類型檢查。</p><p> Java語言的優(yōu)良特性使得Java應用具有無比的健壯性和可靠性,這也減少了應用系統(tǒng)的
45、維護費用。Java對對象技術(shù)的全面支持和Java平臺內(nèi)嵌的API能縮短應用系統(tǒng)的開發(fā)時間并降低成本。Java的編譯一次,到處可運行的特性使得它能夠提供一個隨處可用的開放結(jié)構(gòu)和在多平臺之間傳遞信息的低成本方式。特別是Java企業(yè)應用編程接口(Java Enterprise APIs)為企業(yè)計算及電子商務應用系統(tǒng)提供了有關(guān)技術(shù)和豐富的類庫。</p><p> 1.2 Android概述</p><
46、;p> 1.2.1 Android簡介</p><p> Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設備,如智能手機和平板電腦,由Google公司和開放手機聯(lián)盟領導及開發(fā)。</p><p> Android在正式發(fā)行之前,最開始擁有兩個內(nèi)部測試版本,并且以著名的機器人名稱來對其進行命名,它們分別是:阿童木(AndroidBeta),發(fā)條機器人
47、(Android 1.0)。后來由于涉及到版權(quán)問題谷歌將其命名規(guī)則變更為用甜點作為它們系統(tǒng)版本的代號的命名方法。甜點命名法開始于Android 1.5發(fā)布的時候。作為每個版本代表的甜點的尺寸越變越大,然后按照26個字母數(shù)序:紙杯蛋糕(Android 1.5),甜甜圈(Android 1.6),松餅(Android 2.0/2.1),凍酸奶(Android 2.2),姜餅(Android 2.3),蜂巢(Android 3.0),冰激凌三
48、明治(Android 4.0),果凍豆(Jelly Bean,Android4.1和Android 4.2)。</p><p> 1.2.2 Android系統(tǒng)優(yōu)勢</p><p><b> (1)開放性 </b></p><p> 在優(yōu)勢方面,Android平臺首先就是其開放性,開發(fā)的平臺允許任何移動終端廠商加入到Android聯(lián)盟中來
49、。顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應用的日益豐富,一個嶄新的平臺也將很快走向成熟。</p><p> 開放性對于Android的發(fā)展而言,有利于積累人氣,這里的人氣包括消費者和廠商,而對于消費者來講,最大的受益正是豐富的軟件資源。開放的平臺也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機。 </p><p><b> (2)掙脫束縛 <
50、/b></p><p> 在過去很長的一段時間,特別是在歐美地區(qū),手機應用往往受到運營商制約,使用什么功能接入什么網(wǎng)絡,幾乎都受到運營商的控制。自從iPhone上市,用戶可以更加方便地連接網(wǎng)絡,運營商的制約減少。隨著EDGE、HSDPA這些2G至3G移動網(wǎng)絡的逐步過渡和提升,手機隨意接入網(wǎng)絡已不是運營商口中的笑談。 </p><p><b> ?。?)豐富的硬件 <
51、/b></p><p> 這一點還是與Android平臺的開放性相關(guān),由于Android的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會影響到數(shù)據(jù)同步、甚至軟件的兼容。好比你從諾基亞Symbian風格手機一下改用蘋果iPhone,同時還可將Symbian中優(yōu)秀的軟件帶到iPhone上使用、聯(lián)系人等資料更是可以方便地轉(zhuǎn)移。 </p><p>&l
52、t;b> (4)開發(fā)商 </b></p><p> Android平臺提供給第三方開發(fā)商一個十分寬泛、自由的環(huán)境。因此不會受到各種條條框框的阻撓,可想而知,會有多少新穎別致的軟件會誕生。但也有其兩面性,血腥、暴力方面的程序和游戲如何控制正是留給Android難題之一。 </p><p> (5)無縫結(jié)合的Google應用</p><p>
53、如今叱詫互聯(lián)網(wǎng)的Google已經(jīng)走過10年度歷史。從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google服務如地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android平臺手機將無縫結(jié)合這些優(yōu)秀的Google服務。</p><p> 1.2.3Android編程環(huán)境介紹</p><p> Android編程是在Eclipse開發(fā)環(huán)境中進行的,其目錄分類形式主要為下圖:</p>
54、;<p> Src程序的所有代碼均放在該文件夾里,其中view包里是所有頁面,即activity.util里是所有工具類,model包里是模型包,finical里是模板包,buisness里是服務包,所有對數(shù)據(jù)庫的操作都在這個包里,確定的說是FinancialService。</p><p> Res:所有資源均放在該文件夾里,例如圖標、布局文件等。</p><p>
55、AndroidManifest.xml這個獨立的文件很重要,本程序所有的權(quán)限,頁面文件(<activity>),程序名稱,都需要在該文件中進行聲明,例如下面代碼,通過使用activity聲明了程序最開始由PreActivitiy界面進入。</p><p><b> <activity</b></p><p> android:name="
56、;.view.PreActivitiy"</p><p> android:label="@string/title_PreActivitiy " ></p><p> <intent-filter></p><p> <action android:name="android.intent.ac
57、tion.MAIN" /></p><p> <category android:name="android.intent.category.LAUNCHER" /></p><p> </intent-filter></p><p> </activity></p><
58、;p> Res/layout:該文件夾里放的是所有頁面的XML布局文件。</p><p> 布局文件和activity.java文件之間的關(guān)系非常密切,一個頁面肯定要有布局,一個布局里肯定有許多控件(文本框按鈕等),java虛擬機要想知道用戶操縱了哪個控件就必須先將activity頁面類和它對應的布局文件進行綁定,然后通過findviewbyid的方式綁定頁面上的其他控件,然后再在獲取上的控件上,添加不
59、同的監(jiān)聽器,來處理用戶對控件的不同操作,比如單機監(jiān)聽器,長按監(jiān)聽器,滑動監(jiān)聽器。</p><p> 通過下列代碼進行布局文件和activity.java的綁定操作,setContentView為綁定布局文件函數(shù)。</p><p> protected void onCreate(Bundle savedInstanceState) {</p><p> sup
60、er.onCreate(savedInstanceState);</p><p> setContentView(R.layout.home);</p><p> 通過findviewbyid的方法進行控件的綁定:</p><p> BaddR = (Button)findViewById(R.id.button1);</p><p>
61、 BList = (Button)findViewById(R.id.button2);</p><p> 通過setOnClickListener方法來添加監(jiān)聽器,實現(xiàn)代碼如下:</p><p> BaddR.setOnClickListener(new OnClickListener() {</p><p> public void onClick(Vi
62、ew v) {</p><p> Intent intent = new Intent(home.this,AddRecordActivity.class);</p><p> startActivity(intent);</p><p><b> }</b></p><p><b> }</b&
63、gt;</p><p> 由于FinanicalBaseActivity將initview封裝到了onCreate函數(shù)中,所以繼承了該模板類的類在initview()中也能控件及布局的綁定。如下代碼:</p><p> public abstract class FinanicalBaseActivity extends Activity {</p><p>
64、 private ProgressDialog progressDialog = null;</p><p> private MyTask myTask;</p><p> private Activity activity;</p><p> private FinancialBaseHandler baseHandler;</p><
65、p> private Task task;</p><p> private boolean showProgress;</p><p> private TaskService taskService;</p><p> protected void onCreate(Bundle savedInstanceState) {</p>&
66、lt;p> super.onCreate(savedInstanceState);</p><p> // 取消title欄</p><p> requestWindowFeature(Window.FEATURE_NO_TITLE);</p><p> initView();</p><p><b> }</
67、b></p><p> 界面的跳轉(zhuǎn),就是從一個activity到另一個activity,通過使用startactivity(intent)函數(shù)來實現(xiàn)的,例如下列代碼,通過intent函數(shù),實現(xiàn)由home界面到ShowCategoryActivity界面的跳轉(zhuǎn):</p><p> Intent intent = new Intent(home.this,ShowCategoryAc
68、tivity.class);</p><p> startActivity(intent);</p><p> 除了使用startactivity(intent)函數(shù)來進行跳轉(zhuǎn)外,若調(diào)用的方法中封裝了startactivity(intent)函數(shù)也可以實現(xiàn)界面的跳轉(zhuǎn),例如下列代碼:</p><p> public void executeActivity(Cl
69、ass<?> className) {</p><p> Intent intent = new Intent(getApplicationContext(), className);</p><p> intent.setClass(getApplicationContext(), className);</p><p> startActivi
70、ty(intent, className);</p><p><b> }</b></p><p> 另外有的頁面繼承了FinanicalBaseActivity,所以調(diào)用executeActivity也可以實現(xiàn)頁面的跳轉(zhuǎn)。</p><p> 2.嵌入式關(guān)系型SQLite數(shù)據(jù)庫存儲數(shù)據(jù)</p><p> 2.1
71、SQLite簡介</p><p> SQLite,是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它的設計目標是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),</p><p> 在Android平臺上,集成了一個嵌入式關(guān)系型數(shù)據(jù)庫—SQLit
72、e,所以我們開發(fā)andriod程序時可以選擇使用SQLite數(shù)據(jù)庫存儲數(shù)據(jù)。</p><p> SQLite可以解析大部分標準SQL語句,如:</p><p> 查詢語句:select * from 表名 where 條件子句 group by 分組字句 having ... order by 排序子句</p><p> 如:select * from per
73、son</p><p> select * from person order by id desc</p><p> select name from person group by name having count(*)>1</p><p> 插入語句:insert into 表名(字段列表) values(值列表)。如: insert into
74、person(name, age) values(‘于淼’,3)</p><p> 更新語句:update 表名 set 字段名=值 where 條件子句。如:update person set name=‘傳智‘ where id=10</p><p> 刪除語句:delete from 表名 where 條件子句。如:delete from person where i
75、d=10</p><p> 2.2 Andriod操作SQLlite數(shù)據(jù)庫</p><p> Android提供了一個名為SQLiteDatabase的類,該類封裝了一些操作數(shù)據(jù)庫的API。</p><p> 可以調(diào)用SQLiteDatabase的靜態(tài)方法:</p><p> public static SQLiteData
76、base openDatabase(String path,SQLiteDatabase.CursorFactory factory,int flags)</p><p> flags參數(shù)可以是 OPEN_READWRITE, OPEN_READONLY ,CREATE_IF_NECESSARY, NO_LOCALIZED_COLLATORS四個的一個或多個(多個模式組合用|隔離)。</p>&l
77、t;p> public static SQLiteDatabase openOrCreateDatabase(File file,SQLiteDatabase.CursorFactory factory)</p><p> public static SQLiteDatabase openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory
78、factory)</p><p> 來打開文件系統(tǒng)中位于絕對路徑path的數(shù)據(jù)庫。</p><p> 還可以通過Context對象調(diào)用</p><p> public abstract SQLiteDatabase openOrCreateDatabase(String name,int mode,SQLiteDatabase.CursorFactory fa
79、ctory)直接在私有數(shù)據(jù)庫目錄創(chuàng)建或打開一個名為name的數(shù)據(jù)庫,</p><p> 注意:mode只的是MODE_PRIVATE , MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE。</p><p> Context還有:</p><p> public abstract String[] databaseList();
80、//返回私有數(shù)據(jù)庫目錄所有數(shù)據(jù)庫名字</p><p> public abstract boolean deleteDatabase(String name);//刪除私有數(shù)據(jù)庫目錄內(nèi)文件名為name的數(shù)據(jù)庫。</p><p> 除了在文件系統(tǒng)中創(chuàng)建SQLite數(shù)據(jù)庫,android還支持SQLite內(nèi)存數(shù)據(jù)庫。在某些需要臨時創(chuàng)建數(shù)據(jù)庫,并且對操作速率相對要求高的情況下,SQLite內(nèi)
81、存數(shù)據(jù)庫就發(fā)揮作用了,用SQLiteDatabase的靜態(tài)方法:</p><p> public static SQLiteDatabase create(SQLiteDatabase.CursorFactory factory)</p><p> 來創(chuàng)建,創(chuàng)建失敗返回null。</p><p> 最后記住,不管用何種方式打開了數(shù)據(jù)庫,獲得的SQLite對象不
82、再使用時,都要調(diào)用close()來關(guān)閉打開的數(shù)據(jù)庫,否則拋出IllegalStateException異常。</p><p> 使用SQLiteDatabase對象可以完成對數(shù)據(jù)進行添加(Create)、查詢(Retrieve)、更新(Update)和刪除(Delete)操作(這些操作簡稱為CRUD)。對SQLiteDatabase的學習,我們應該重點掌握execSQL()和rawQuery()方法。 exec
83、SQL()方法可以執(zhí)行insert、delete、update和CREATE TABLE之類有更改行為的SQL語句; rawQuery()方法可以執(zhí)行select語句。</p><p> 2.3本程序中的SQLlite</p><p> 根據(jù)本程序的需求,我們需要創(chuàng)建兩個表,1個賬目信息表,1個賬目類別表</p><p> 賬目信息表中有賬目序號,類別序號,類
84、別名,金額,消費日期,備注</p><p> 賬目類別表中有,類別序號,類別名,圖標序號</p><p><b> 創(chuàng)建相關(guān)語句</b></p><p> public void onCreate(SQLiteDatabase db){</p><p> String create_category_sql =
85、"CREATE TABLE category (categoryid integer primary key autoincrement, cname varchar(20), iconid integer)";</p><p> db.execSQL(create_category_sql);</p><p> String create_records_sql
86、= "CREATE TABLE records (recordsid integer primary key autoincrement, money varchar(20),recorddate varchar(20), categoryid integer, weather varchar(20),address varchar(60),remarks varchar(100))";</p><
87、;p> db.execSQL(create_records_sql);}</p><p> 除了創(chuàng)建還有添加分類信息,修改分類,按照id查詢分類,羅列所有分類信息,添加記賬,更新記錄,刪除記錄,查詢某月的賬單,查詢某月某分類下的賬單等功能,代碼會穿插在功能模塊中進行講解。</p><p> 3.家庭理財通軟件簡介</p><p> 在社會經(jīng)濟不斷發(fā)展的
88、今天,人們生活水平越來越高,合理理財也變得越來越重要,他直接影響著人們的生活。本軟件是基于android的家庭理財軟件,當今社會,手機已成為人們生活必不可少的重要物品,而本軟件可以方便大家及時記錄家庭的財務信息,以便作出合理的財務決策。</p><p> 財務管理對于每一個家庭來說都是意見必不可少的事情,但是,一直以來人們使用傳統(tǒng)人工方式的文件、紙張記賬管理模式,這些管理模式存在著許多缺點,如效率低、保密性差、
89、另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這給查找、更新和維護都帶來許多困難。隨著手機的普及,人們生活越來越離不開手機,而android系統(tǒng)作為使用量最大的手機0S更是與人們生活息息相關(guān)。所以,我們可以將家庭理財同手機技術(shù)結(jié)合起來,發(fā)揮手機方便便捷的優(yōu)點,開發(fā)出家庭理財軟件,將我們的生活管理的更有效率,有條不紊。</p><p> 家庭理財軟件可以有效的記錄和管理家庭的支出,合理規(guī)劃和支配家庭資金,是家庭理財?shù)暮脦?/p>
90、手。他利用android技術(shù),使家庭理財逐步信息化、便捷化,可以隨時隨地記錄生活支出,有效的避免了遺漏。它更能隨時隨地查看,方便隨時掌握家庭財務問題。使用家庭理財軟件管理家庭財務,不經(jīng)提高了工作效率,更能大大的提高了其安全性。</p><p> 本軟件為家庭理財軟件的支出模塊,操作簡單,易懂。其主要功能是對個人支出情況的記錄,并可以對記錄進行增、刪、改、查等操作??筛鶕?jù)使用者的實際情況,設置收入、支出類型,方便
91、社會不同階層,不同行業(yè)使用的應用。本軟件在登錄之初,會要求輸入密碼,充分保護了的家庭隱私的安全。</p><p> 在軟件設計之前,我們首先需要對家庭理財支出的流程、操作等做出詳細的調(diào)查了解,從而理解軟件需要實現(xiàn)的功能??紤]到軟件本身具有較強的專業(yè)性,而這些知識普及率畢竟有限,所以在程序設計過程中一直循序?qū)嶋H應用的原則,保證設計出來的軟件能被一般家庭使用。因此它的操作界面會盡可能地簡單明了;各種控件的布置也會非
92、常清晰,使用的控件種類不會太多而且對控件的操作不會復雜。這樣就能讓不參與該軟件設計的人也能夠熟練地使用。 </p><p> 4.家庭理財通軟件支出模塊</p><p><b> 4.1登錄模塊</b></p><p><b> 4.1.1登錄界面</b></p><p> 登錄界面會在用戶
93、首次時,要求用戶登錄設置密碼,在以后的登錄中必須輸入密碼才能登錄,從而有效地保護了用戶的隱私 </p><p> 登錄界面有兩個界面組成,分別是首次登錄的設置密碼的界面及再次登錄的輸入密碼界面,布局也十分簡單只是用了TextView、EditText和Button三種控件。當完成首次登錄設置密碼后,以后的登錄只需輸入正確的密碼就可以成功登陸了。當用戶打開軟件時先會查看本程序(PreActivity)是不是第一次
94、運行,如果是第一次運行跳轉(zhuǎn)到(RegActivity)注冊頁面,進行密碼設置,并通過configutil工具類將密碼保存到本程序文件夾下的test文件中。如果不是則跳轉(zhuǎn)到(LoginActivity)登錄界面,當用戶輸入密碼后,通過configutil工具類將輸入的密碼與test中的密碼進行比對,若密碼相同則進入(FinanicalHomeActivity)主界面,否則提示登錄失敗。</p><p><b&
95、gt; 4.2主界面模塊</b></p><p><b> 4.2.1主界面</b></p><p> 主界面主要由添加記賬、我的賬單、分析報表、支出科目四部分組成。</p><p> 在本界面中以TitleBar控件來自定義標題欄。</p><p> <net.sgblog.finanica
96、l.widget.TitleBar</p><p> android:id="@+id/titlebar"</p><p> android:layout_width="fill_parent"</p><p> android:layout_height="wrap_content"</p&g
97、t;<p> app:titleStyle="@style/text_24_2f4f4f"</p><p> app:titleText="@string/app_name" > </p><p> //設置標題欄文字為res下的values下的strings.xml文件里面app_name的值</p>&
98、lt;p> </net.sgblog.finanical.widget.TitleBar></p><p> 用TextView控件來設定添加記賬、我的賬單、分析報表、支出報表模塊。</p><p><b> <TextView</b></p><p> android:id="@+id/addacco
99、unt"</p><p> style="@style/text_24_ffffff"</p><p> android:layout_width="160dip"</p><p> android:layout_height="100dip"</p><p> a
100、ndroid:layout_alignParentLeft="true"</p><p> android:layout_margin="5dip"</p><p> android:background="@color/home_bg_squre_color_02"</p><p> android
101、:gravity="center"</p><p> android:text="@string/add_account" </p><p> //設置TextView文字為res下的values下的strings.xml文件里面其對應設置的值</p><p><b> /></b></
102、p><p> 所用TextView的控件都放在ScrollView嵌套下的RelativeLayout中,ScrollView是為控件或者布局添加滾動條,ScrollView可在擁有很多內(nèi)容,屏幕顯示不完時,通過滾動來顯示視圖。 </p><p> <ScrollView</p><p> android:layout_width="fill_
103、parent"</p><p> android:layout_height="wrap_content"</p><p> //以layout_width和layout_height來設定其滾動條的位置</p><p> android:layout_below="@id/titlebar"</p>
104、;<p> android:layout_centerInParent="true" ></p><p> 在主界面中有兩處用到RelativeLayout控件,一處在ScrollView控件的嵌套中,一處嵌套了所有控件。RelativeLayout為相對布局控件,在這個容器內(nèi)部的子元素們可以使用彼此之間的相對位置或者和容器間的相對位置來進行定位。</p>
105、<p><b> 4.3添加記賬模塊</b></p><p> 用戶通過添加記賬模塊來進行對支出的新增。</p><p> 4.3.1添加記賬界面</p><p> 添加記賬時,需要確定輸入賬目金額,以及添加賬目的信息,以及消費賬目所屬類別, 還有必要的備注信息。本布局通過DatePicker控件來實現(xiàn)日期的選擇,通過Scr
106、ollView控件來綁定數(shù)據(jù)庫中的賬目分類供用戶選擇。</p><p><b> 最終效果:</b></p><p> 在添加記賬頁面中用到了TitleBar控件來自定義標題欄</p><p> <net.sgblog.finanical.widget.TitleBar</p><p> android:i
107、d="@+id/titlebar"</p><p> android:layout_width="fill_parent"</p><p> android:layout_height="wrap_content"</p><p> app:leftBtnBackground="@drawa
108、ble/btn_zdl"</p><p> //設置leftbutton</p><p> app:leftBtnText="@string/goback"</p><p> //設置leftbutton內(nèi)容為按鍵</p><p> app:titleStyle="@style/text_24_
109、bebebe"</p><p> app:titleText="@string/add_account" ></p><p> //設置標題欄文字為res下的values下的strings.xml文件里面add_account的值</p><p> </net.sgblog.finanical.widget.Title
110、Bar></p><p> 在本頁面中以LinearLayout來進行布局設置,LinearLayou是線性布局控件,它可使其包含的子控件以橫向或豎向的方式排列,按照相對位置來排列所有的widgets或者其他的containers,超過邊界時,某些控件將缺失或消失。因此一個垂直列表的每一行只會有一個widget或者是container,而不管他們有多寬,而一個水平列表將會只有一個行高(高度為最高子控件的高
111、度加上邊框高度)。LinearLayout保持其所包含的widget或者是container之間的間隔以及互相對齊(相對一個控件的右對齊、中間對齊或者左對齊)。</p><p> LinearLayout控件支持為其所包含的widget或container來指定填充權(quán)值。這樣做的好處就是允許其包含的widget或container可以填充屏幕上的剩余空間,避免了在一個大屏幕中 widgets或container
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于android平臺家庭理財通管理系統(tǒng)
- 基于android系統(tǒng)的家庭理財通軟件—便簽管理模塊設計
- 基于android系統(tǒng)的家庭理財通軟件的設計——收入管理模塊
- 基于android的家庭理財通軟件的設計—收入管理模塊
- 基于android的家庭理財通軟件的設計——支出管理模塊
- 軟件工程畢業(yè)論文-基于android系統(tǒng)的家庭理財通軟件-----支出模塊的設計
- 軟件工程畢業(yè)論文-基于android系統(tǒng)的家庭理財通軟件——便簽管理模塊設計
- 軟件工程畢業(yè)論文-基于android系統(tǒng)的家庭理財通軟件的設計——收入管理模塊
- 軟件工程畢業(yè)論文-基于android的家庭理財通軟件的設計——收入管理模塊
- 家庭理財通管理系統(tǒng).doc
- 軟件工程畢業(yè)論文-基于android的家庭理財通軟件的設計——支出管理模塊
- 基于web的家庭理財管理系統(tǒng)
- 家庭理財管理系統(tǒng)
- 淺析家庭理財管理系統(tǒng)
- 基于iPad的家庭理財軟件的設計與實現(xiàn).pdf
- 家庭理財管理系統(tǒng).doc
- 家庭理財常識
- 家庭理財規(guī)劃
- 家庭理財系統(tǒng)的設計與實現(xiàn)
- 家庭理財系統(tǒng) 畢業(yè)論文
評論
0/150
提交評論