国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Android備忘錄的設(shè)計(jì)與實(shí)現(xiàn)

2019-05-24 14:12朱建明
電腦知識(shí)與技術(shù) 2019年9期
關(guān)鍵詞:接口備忘錄

朱建明

摘要: Android手機(jī)備忘錄能給用戶帶來方便的體驗(yàn)。手機(jī)備忘錄需要具備記事的添加、保存、瀏覽、刪除等功能。使用Android ADT集成開發(fā)環(huán)境與Java語言進(jìn)行備忘錄的設(shè)計(jì),用XML文件定義界面, 在Activity中呈現(xiàn)界面,利用Intent技術(shù)實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn),使用SQLite數(shù)據(jù)庫(kù)保存事項(xiàng)的編輯時(shí)間、內(nèi)容,對(duì)數(shù)據(jù)表進(jìn)行查詢,將查詢結(jié)果以列表形式顯示在備忘錄列表視圖界面,并實(shí)現(xiàn)了單條事項(xiàng)編輯及刪除功能。

關(guān)鍵詞:備忘錄;Android;類;事件處理;接口

中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2019)09-0067-04

Abstract: Android phone memo can bring a convenient experience to users. The mobile phone memo needs to have the functions of adding, saving, browsing, and deleting notes. Use Android ADT integrated development environment and Java language to design memo, define interface with XML file, present interface in Activity, use Intent technology to realize page jump, use SQLite database to save the editing time and content of the item, query the data table , the query results are displayed in a list form on the memo list view. And the single item editing and deletion function has been implemented.

Key words:memo; Android; class; event processing; interface

1 概述

當(dāng)今時(shí)代電子技術(shù)飛速發(fā)展,誕生了一代又一代手機(jī)。手機(jī)在人們的生活中成為不可缺少的必需品。目前的手機(jī)操作系統(tǒng)中,Android系統(tǒng)占據(jù)了半壁江山。

1.1 Android系統(tǒng)簡(jiǎn)介

Android是一種操作系統(tǒng),它是基于Linux的,具有開放性,Android聯(lián)盟允許任何移動(dòng)終端廠商加入,主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google(谷歌)公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā),Android已經(jīng)在手機(jī)市場(chǎng)中占據(jù)90%左右份額。目前最新版本是 Android 9.0pie。

1.2 SQLite數(shù)據(jù)庫(kù)簡(jiǎn)介

SQLite是一款輕型的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它包含在一個(gè)相對(duì)小的C庫(kù)中。它的設(shè)計(jì)目標(biāo)是嵌入式的,目前已經(jīng)在很多嵌入式產(chǎn)品中使用,在嵌入式設(shè)備中它占用資源很低,可能只需要幾百K的內(nèi)存,處理速度快。

1.3手機(jī)備忘錄簡(jiǎn)介

現(xiàn)在的手機(jī)需要具備上網(wǎng)、照明、拍照、計(jì)算等功能,還需要有記事的功能。手機(jī)備忘錄能夠讓用戶隨時(shí)記錄生活工作中發(fā)生的重要事件,記錄下未來要做的事。開發(fā)Android平臺(tái)上的備忘錄十分必要。

1.4 設(shè)計(jì)目標(biāo)

實(shí)現(xiàn)備忘錄的基本功能:添加事項(xiàng)的標(biāo)題、內(nèi)容并保存;列表顯示出已保存的所有事項(xiàng);修改、刪除事項(xiàng)等。在手機(jī)備忘錄APP開發(fā)完成后,經(jīng)過打包簽名,可運(yùn)行在Andriod4.4及其以上版本。

1.5 開發(fā)環(huán)境和目標(biāo)平臺(tái)

1.5.1開發(fā)環(huán)境

1)Java開發(fā)工具,JDK1.7。

2)SQLite數(shù)據(jù)庫(kù)。

3)集成開發(fā)環(huán)境,Eclipse IDE for Java EE Develops。

4)Android SDK 及其Eclipse開發(fā)插件ADT。

1.5.2目標(biāo)平臺(tái)

手機(jī)備忘錄APP開發(fā)完成后,經(jīng)過打包簽名,可運(yùn)行在目前市場(chǎng)上所有的Android手機(jī)上。

2功能分析

Android手機(jī)備忘錄是為Android用戶提供記事功能的項(xiàng)目,其目標(biāo)是實(shí)現(xiàn)添加、編輯并保存事項(xiàng),以及對(duì)已添加事件的操作,如查看、修改、刪除等。在該應(yīng)用的構(gòu)建中要用到SQLite數(shù)據(jù)存儲(chǔ)技術(shù)??傮w功能框架如圖1所示。

各模塊功能如下:

列表顯示事項(xiàng):把所有已保存過的事項(xiàng)以列表形式在備忘界面上顯示出來,可供用戶選擇。

修改事項(xiàng):用戶在列表界面選擇某個(gè)事項(xiàng)后便全屏顯示該事項(xiàng)內(nèi)容,同時(shí)可對(duì)該事項(xiàng)進(jìn)行修改。

刪除事項(xiàng):用戶在列表界面長(zhǎng)按某事項(xiàng),可以實(shí)現(xiàn)對(duì)多個(gè)選定事項(xiàng)的刪除。

增加事項(xiàng):?jiǎn)螕艏犹?hào)按鈕,可以增加事項(xiàng)并保存。

3數(shù)據(jù)庫(kù)設(shè)計(jì)

使用SQLite數(shù)據(jù)庫(kù)管理系統(tǒng),使用SQLite Expert Professional 5建立數(shù)據(jù)庫(kù)和數(shù)據(jù)表再將數(shù)據(jù)庫(kù)導(dǎo)入系統(tǒng)中。本數(shù)據(jù)庫(kù)名為notesDB,只設(shè)計(jì)一張數(shù)據(jù)表,名為notes,用于保存事項(xiàng)信息。數(shù)據(jù)表結(jié)構(gòu)如下:

4界面設(shè)計(jì)

該項(xiàng)目需要在res目錄下新建三個(gè)XML布局文件,分別是notelist.xml、noteedit.xml 、notetiaomu.xml。notelist.xml是列表顯示界面,noteedit.xml是事項(xiàng)編輯界面,notetiaomu.xml是單條事項(xiàng)顯示界面,用來控制列表項(xiàng)顯示格式。

5 功能實(shí)現(xiàn)

5.1定義數(shù)據(jù)庫(kù)類

定義創(chuàng)建數(shù)據(jù)庫(kù)的類NotesDB,繼承自 SQLiteOpenHelper。

5.1.1 定義常量

定義字符串常量分別代表數(shù)據(jù)表名、事項(xiàng)ID號(hào)、事項(xiàng)內(nèi)容、更新日期。

5.1.2 重寫構(gòu)造方法NotesDB(Context context)

通過super調(diào)用父類的構(gòu)造方法。

5.1.3 重寫方法onCreate(SQLiteDatabase db)

先將創(chuàng)建數(shù)據(jù)表的命令保存到字符串對(duì)象sql中,再通過執(zhí)行db.execSQL(sql)實(shí)現(xiàn)數(shù)據(jù)表的創(chuàng)建。

5.1.4重寫onUpgrade(SQLiteDatabase arg0, int arg1, int arg2)

該方法體為空語句。

5.2列表顯示功能實(shí)現(xiàn)

定義Activity的子類 NoteMainActivity并實(shí)現(xiàn)接口OnScrollListener、OnItemClickListener和OnItemLongClickListener,分別重寫接口中的所有方法,以實(shí)現(xiàn)列表滾動(dòng)、單擊條目和長(zhǎng)按條目的事件處理。

5.2.1定義成員變量

聲明列表視圖類ListView的私有對(duì)象listview;

聲明簡(jiǎn)單適配器類SimpleAdapter的私有對(duì)象simp_adapter;

聲明泛型列表類private List>的私有對(duì)象dataList;

聲明私有按鈕類對(duì)象addNote;

聲明私有文本視圖類對(duì)象tv_content;

聲明私有數(shù)據(jù)庫(kù)創(chuàng)建類NotesDB對(duì)象DB;

聲明私有數(shù)據(jù)庫(kù)處理類SQLiteDatabase對(duì)象dbread;

5.2.2重寫onCreate()方法

設(shè)置顯示界面布局文件為notelist.xm,通過id獲取界面組件的引用分別賦給listview、addNote、tv_content,創(chuàng)建對(duì)象mContext、dataList(泛型類對(duì)象)、DB、dbread。

處理“添加事項(xiàng)”按鈕addNote的事件:通過Intent對(duì)象進(jìn)行數(shù)據(jù)傳遞并打開事項(xiàng)編輯界面,事項(xiàng)被編輯保存后,調(diào)用自定義方法RefreshNotesList()刷新列表視圖界面。分別監(jiān)聽列表視圖listview的單擊事項(xiàng)、長(zhǎng)按事項(xiàng)、滾動(dòng)查看事項(xiàng)事件。

5.2.3定義方法RefreshNotesList()

定義方法public void RefreshNotesList( )實(shí)現(xiàn)列表視圖內(nèi)容刷新,方法體:獲取列表視圖中事項(xiàng)的個(gè)數(shù)賦給整型變量size,若size>0,則通過使用適配器對(duì)象simp_adapter將方法getData()從數(shù)據(jù)表note中獲取的所有記錄內(nèi)容更新到列表視圖中。

5.2.4定義方法getData()

定義方法private List> getData()獲取數(shù)據(jù)表中所有記錄,方法體內(nèi)容:dbread調(diào)用query方法查詢數(shù)據(jù)表note中所有記錄,查詢結(jié)果封裝在Cursor類對(duì)象cursor中,通過while循環(huán)逐條讀取cursor中的記錄,將當(dāng)前記錄中content字段的值賦給String類變量name,將當(dāng)前記錄中date字段值賦給String類變量date,將name和date分別以名值對(duì)的格式存入Map類對(duì)象map中,將map添加到dataList中,關(guān)閉cursor,返回dataList。

5.2.5 實(shí)現(xiàn)接口OnScrollListener

重寫接口OnScrollListener中的方法onScroll()處理列表?xiàng)l目滾動(dòng)事件:方法體中無語句。

重寫接口OnScrollListener中的方法public void onScrollStateChanged(AbsListView arg0, int arg1)處理列表視圖listview界面的滾動(dòng)狀態(tài)改變事件,方法體內(nèi)容:若arg1值為SCROLL_STATE_FLING則Log.i("main", "用戶在手指離開屏幕之前,由于用力的滑了一下,視圖能依靠慣性繼續(xù)滑動(dòng)");若arg1值為SCROLL_STATE_IDLE,則Log.i("main", "視圖已經(jīng)停止滑動(dòng)");若arg1值為SCROLL_STATE_TOUCH_SCROLL,則Log.i("main", "手指沒有離開屏幕,試圖正在滑動(dòng)")。

5.2.6 實(shí)現(xiàn)接口OnItemLongClickListener

重寫接口中的方法public boolean onItemLongClick (AdapterView<?> arg0, View arg1, int arg2, long arg3)處理列表視圖listview中某項(xiàng)的長(zhǎng)按事件:

使用Builder模式創(chuàng)建警示消息對(duì)話框,該對(duì)話框標(biāo)題為“刪除該日志”,警示消息為“確認(rèn)刪除嗎?”。

重寫接口DialogInterface.OnClickListener中的onClick()方法處理對(duì)話框中“確定”按鈕的單擊事件,方法體內(nèi)容:獲取被長(zhǎng)按的項(xiàng)目序號(hào),在數(shù)據(jù)表中查詢到該序號(hào)對(duì)應(yīng)的項(xiàng)目記錄并刪除。

重寫接口DialogInterface.OnClickListener中的onClick()方法處理對(duì)話框中“取消”按鈕的單擊事件,方法體內(nèi)容為空。

返回true。

5.2.7 實(shí)現(xiàn)接口OnItemClickListener

重寫接口中的方法public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)處理列表視圖listview中的某項(xiàng)單擊事件。方法體內(nèi)容:根據(jù)單擊條目的序號(hào)獲取該條目的內(nèi)容,在數(shù)據(jù)表note中查詢?cè)搩?nèi)容對(duì)應(yīng)的記錄,利用Intent和Bundle對(duì)象將被單擊的事項(xiàng)內(nèi)容傳遞給事項(xiàng)編輯界面并打開該界面。

5.2.8重寫父類Activity中onActivityResult()方法

重寫方法protected void onActivityResult(int requestCode, int resultCode, Intent data), 接受上一個(gè)頁(yè)面返回的數(shù)據(jù),并刷新頁(yè)面。

5.3事項(xiàng)編輯功能實(shí)現(xiàn)

定義Activity的子類NoteEdit,定義成員變量,重寫onCreate()及onActivityResult()方法,處理“保存”按鈕和“取消”按鈕你的單擊事件。類體內(nèi)容如下:

5.3.1 定義成員變量

聲明TextView類對(duì)象tv_date用于顯示日期,聲明 private EditText et_content作為事項(xiàng)內(nèi)容編輯框,聲明“保存”按鈕對(duì)象private Button btn_ok作為,聲明“取消”按鈕對(duì)象private Button btn_cancel,聲明創(chuàng)建數(shù)據(jù)庫(kù)的對(duì)象private NotesDB DB,聲明處理數(shù)據(jù)庫(kù)的對(duì)象private SQLiteDatabase dbread,定義整型類變量public static int ENTER_STATE = 0辨識(shí)當(dāng)前事項(xiàng)是否是新增事項(xiàng),聲明字符串對(duì)象public static String last_content保存由列表視圖界面?zhèn)鬟f來的事項(xiàng)內(nèi)容,聲明整型類變量public static int id表示當(dāng)前被編輯事項(xiàng)的id。

5.3.2 重寫父類Activity中onCreate()方法

設(shè)置顯示界面布局文件為noteedit.xml,通過布局文件中定義的id獲取界面中的日期顯示視圖tv_date、內(nèi)容編輯框et_content、“保存”按鈕對(duì)象btn_ok及“取消”按鈕對(duì)象btn_cancel。設(shè)置軟鍵盤自動(dòng)彈出。創(chuàng)建對(duì)象DB及dbread,通過Bundle類對(duì)象bundle獲取列表視圖界面?zhèn)鬟f來的事項(xiàng)內(nèi)容賦給last_content,將該內(nèi)容顯示在et_content中。

重寫接口OnClickListener中方法public void onClick(View arg0),處理“保存”按鈕的點(diǎn)擊事件:獲取事項(xiàng)內(nèi)容,獲取事項(xiàng)創(chuàng)建或修改時(shí)間,創(chuàng)建Date類對(duì)象date,設(shè)置日期格式并將該日期轉(zhuǎn)換為字符串顯示在tv_date中。,

若ENTER_STATE==0且編輯框內(nèi)容不為空,則在數(shù)據(jù)表中新增一條事項(xiàng)記錄;若ENTER_STATE!=0則更新數(shù)據(jù)表中的事項(xiàng)記錄。

重寫接口OnClickListener中方法public void onClick(View arg0),處理“取消”按鈕的點(diǎn)擊事件:調(diào)用finish()方法實(shí)現(xiàn)當(dāng)前界面的關(guān)閉。

5.3.3 重寫父類Activity中onActivityResult()方法

重寫方法protected void onActivityResult(int requestCode, int resultCode, Intent data),接受上一個(gè)頁(yè)面返回的數(shù)據(jù),并賦給字符串型類變量last_content。

6運(yùn)行結(jié)果

運(yùn)行該android備忘錄項(xiàng)目,出現(xiàn)圖7所示界面,單擊“添加備忘錄”按鈕出現(xiàn)編輯備忘錄界面如圖9所示。在編輯界面中輸入內(nèi)容后單擊“保存”按鈕則將當(dāng)前事項(xiàng)保存后返回更新后的列表視圖界面如圖10所示,若在圖9所示界面中單擊“取消”按鈕,則不保存當(dāng)前事項(xiàng)直接返回列表視圖界面如圖10所示。在列表視圖界面中長(zhǎng)按某項(xiàng)則出現(xiàn)警示框如圖11所示。

7 結(jié)論

利用開發(fā)工具eclipse+adt開發(fā)了android平臺(tái)上的備忘錄APP,該備忘錄實(shí)現(xiàn)了列表顯示、添加事項(xiàng)、單條編輯保存、逐條刪除等功能。該應(yīng)用還需要進(jìn)一步完善,可以增加批量刪除、定時(shí)提醒等功能。

參考文獻(xiàn):

[1] 肖琨. Android Studio移動(dòng)開發(fā)教程 [M]. 北京: 電子工業(yè)出版社出版, 2019..

[2] 王向輝,張國(guó)印,沈潔.Android應(yīng)用程序開發(fā)[M]. 3版.北京:清華大學(xué)出版社,2016.

[3] 劉國(guó)柱,杜軍威,QST青軟實(shí)訓(xùn). Android程序設(shè)計(jì)與開發(fā)(Android Studio版) [M]. 北京:清華大學(xué)出版社,2017 .

[4] 郭霖.第一行代碼 Android [M]. 2版.北京:人民郵電出版社,2016.

[5] 156莊威龍. Android簡(jiǎn)易記事本[EB/OL]. https://www.cnblogs.com/lger/p/7920159.html.

[6]. Mr_cqh. Android項(xiàng)目實(shí)戰(zhàn)——一個(gè)簡(jiǎn)單的記事本程序[EB/OL]. https://blog.csdn.net/Mr_cqh/article/details/80967084.

【通聯(lián)編輯:謝媛媛】

猜你喜歡
接口備忘錄
天一閣四事備忘錄
新一輪高考備考備忘錄
某電站工程設(shè)計(jì)管理與施工、質(zhì)量控制接口關(guān)系研究
屯门区| 丹凤县| 车险| 黑河市| 茶陵县| 美姑县| 阿勒泰市| 驻马店市| 龙南县| 科技| 年辖:市辖区| 南华县| 兴隆县| 天等县| 育儿| 如皋市| 张家界市| 沁源县| 黄浦区| 沙坪坝区| 比如县| 宾川县| 广汉市| 渝北区| 随州市| 阿尔山市| 通化县| 阳曲县| 惠来县| 左云县| 西平县| 垣曲县| 大渡口区| 霍州市| 潼南县| 健康| 乌拉特前旗| 玛多县| 宣化县| 新源县| 巴林右旗|