李嘉誠
(南昌大學軟件學院,江西南昌330047)
?
基于安卓的個人理財系統研發
李嘉誠
(南昌大學軟件學院,江西南昌330047)
摘要:基于個人手機進行簡便有效整理個人財務,對個人來說很必要。本文在簡要介紹本系統研發工具的基礎上,首先對開發系統進行了需求分析,得到系統的功能需求。隨后對系統進行了概要設計和詳細設計。最后對系統進行了功能測試,并對測試結果進行了分析,在總結、分析的基礎上,指出了系統存在的不足及需要改進的地方,為今后開發類似系統提供借鑒和幫助。該系統功能完善、用戶界面友好、運行穩定,可完成日常個人財務信息的管理和維護。
關鍵詞:個人理財系統;數據庫;安卓;智能手機
簡便有效整理個人財務對個人來說很必要。基于手機的個人簡易通用理財系統的研發具有極其重要的現實意義。本系統基于安卓研發,它適合對個人財務管理,具有資金收入、支出、編輯和統計等基本功能。系統操作簡單、用戶界面友好、運行穩定,可完成日常個人財務信息的管理和維護。
Android是一種以Linux為基礎的開放源碼操作系統,主要適用于便攜設備。Android以Java為編程語言,從接口到功能的變化層出不窮。短短幾年時間Android與Symbian、ios已形成三足鼎立之勢,而Symbian系統不斷臃腫為人所詬病,ios只能運行在自家硬件系統上,這限制了一些用戶。[1-3]
SQLiteDatabase是Android SDK中操作數據庫的核心類之一。使用SQLiteDatabase可打開數據庫,也可對數據庫進行操作。然而為了數據庫升級的需要及使用更方便,使用SQLiteOpenHelper的子類來完成創建、打開數據庫及各種數據庫操作。[4-6]
(一)系統結構設計
個人理財系統主要面向個人用戶,用戶只要記錄流水賬信息便可預算得到相應的統計結果。本系統的主要功能包括收入賬單,支出賬單及賬單管理。[8]系統結構設計如圖1所示。

圖1:系統結構設計
(二)本系統流程
系統操作流程是先注冊,后登錄進入主界面,在主界面下分別完成收入登記,支出登記,結算和查詢等基本財務管理,還能修改密碼和安全退出,如圖2所示。
本系統用到移動數據庫SQLiteOpenHelper,并封裝成一個輔助類DataBaseAdapter繼承于SQLiteOpenHelper,該類構造器中,調用Context中方法創建,并打開一個指定名稱的數據庫對象。當需要創建或打開一個數據庫,并獲得數據庫對象時,首先根據指定的文件名創建一個輔助對象,然后調用該對象的getWritableDatabase或getReadableDatabase方法獲得SQLiteDatabase對象。[6]數據庫中有三張表分別為user、add、out。user表符號化用戶名、密碼、真實姓名和身份證號。add表符號化用戶名、收入來源、收入金額、時間和解釋。out表符號化用戶名、支持去向、指出金額、時間和解釋。

圖2 系統操作流程
調用getReadableDatabase方法返回的并不總是只讀數據庫對象,一般來說該方法getWriteableDatabase方法的返回情況相同,只有在數據庫僅開放只讀權限或磁盤已滿時才會返回一個只讀的數據庫對象。
(一)本系統啟動界面設計與實現
界面包含TextView、EditView和Button三個控件,皆用線性布局。啟動界面進入登陸界面,若屬首次使用本程序,需初始化本程序的SQlite數據庫,建庫、建Table,初始化賬目數據。[7]否則直接登陸,如無賬號則先注冊。點擊注冊按鈕,跳轉到注冊界面,注冊界面呈線性布局。
三個textview控件和三個exittext控件兩個按鈕代碼在這里都為必填項,如果用戶沒有填寫里面的一項而點提交的話,會彈出對話框提升用戶不允許為空。在填寫用戶名的時候系統會檢查用戶名是否已經注冊過,假如用戶名注冊過,會彈出對話框提示用戶用戶名被占用。[8]如果用戶點擊取消程序將會調用public void cancel(View view){}方法,返回到登陸界面。如果用戶填寫正確且點擊提交按鈕,程序將會調用public void main(View view){}方法。在此方法中將用戶填寫的數據存入數據庫中,并跳轉到成功界面,提示用戶注冊成功是否立即進入。
此界面是由一個TextView控件和兩個Button組成,通過線性布局實現。[9]當用戶點擊否按鈕,程序將調用public void log(View view){}方法,進入到主界面。
(二)功能選擇界面
當用戶注冊成功或者登陸成功,會進入到主界面。主界面由一個TextView控件和5個按鈕組成,通過線性布局實現。當用戶點擊不同按鈕收入、支出、結算、查詢、修改密碼、退出時,程序會調用相應方法將界面跳轉到對應界面。
(三)開支表和收支表
用戶可以在開支表上記錄某一天消費情況。此表布局文件是線性的,每項由一個TextView和一個EditView組成,選擇時間是通過DatePicker控件實現,還有兩個按鈕分別為保存和取消。
用戶如果點擊取消按鈕,程序將調用public void acencel (View view){}方法,不保存數據并返回到主界面。當用戶填寫完數據,并點擊保存按鈕,程序將調用public void asave (View view){}方法,將用戶填寫的消費情況保存到數據庫并跳轉到主界面。收支表的實現類似開支表,不再累敘。
(四)時間設置對話框
每次進入新增開支界面,都會對系統時間的初始化,此功能通過DatePicker控件來實現。
<DatePicker
android:id="@+id/i_datepicker"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
當程序調用這個控件,該控件都會調用系統當前時間來進行初始化。
(五)賬單管理
用戶可以在該界面上查看某段時間內的個人所定的預算和收入情況,當用戶在主界面點擊查詢按鈕時,程序將會調用public void inquire(View view){}方法,先跳轉到選擇時間界面。
當用戶選擇好時間點擊確定按鈕之后,程序將調用public class InquireResultActivity extends Activity{}類將用戶選擇的時間作為查詢條件將一天的收入支出查詢出來并且算出剩余多少,將結果顯示到界面上。
本系統的資金收入、支出、編輯和統計等個人理財功能得到實現,經測試系統操作簡單、界面友好、穩運行定,能實現日常個人財務信息的管理和維護。
參考文獻:
[1] [美]Rogers Cadenhead.Java編程入門經典(第4版)[M].梅興文,譯.北京:人民郵電出版社,2007.156-179.
[2] [美]Bruce Eckel. Thinking In Java[M].英文第4版.北京:機械工業出版社,2007.57-98.
[3]朱喜福,戴舒樽,王曉勇.Java網絡編程基礎[M].人民郵電出版社, 2008.87-96.
[4]劉永華,于春華.實用Java網絡編程技術[M].中國電力出版社, 2009.112-153.
[5]朱振元,朱承,劉聆.Java語言及其網絡應用[M].人民郵電出版社, 2006:130-188.
[6]趙毅.跨平臺程序設計語言——Java[M].西安:西安電子科技大學出版社,2006.174-233.
[7]王路群.Java高級程序設計[M].北京:中國水利水電出版社,2006.142-186.
[8]陳學峰,柴俊霞.Linux下基于Socket的網絡編程[J].淮北煤炭師范學院學報:自然科學版,2004,(3):29-34.
[9]徐長勝,戴超.一種快速開發web應用程序方法的研究[J].計算機工程與設計,2004,(12):2237-2239.