999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Android備忘錄的設計與實現

2019-05-24 14:12:46朱建明
電腦知識與技術 2019年9期

朱建明

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

關鍵詞:備忘錄;Android;類;事件處理;接口

中圖分類號:TP393 文獻標識碼:A

文章編號: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 概述

當今時代電子技術飛速發展,誕生了一代又一代手機。手機在人們的生活中成為不可缺少的必需品。目前的手機操作系統中,Android系統占據了半壁江山。

1.1 Android系統簡介

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

1.2 SQLite數據庫簡介

SQLite是一款輕型的關系型數據庫管理系統,它包含在一個相對小的C庫中。它的設計目標是嵌入式的,目前已經在很多嵌入式產品中使用,在嵌入式設備中它占用資源很低,可能只需要幾百K的內存,處理速度快。

1.3手機備忘錄簡介

現在的手機需要具備上網、照明、拍照、計算等功能,還需要有記事的功能。手機備忘錄能夠讓用戶隨時記錄生活工作中發生的重要事件,記錄下未來要做的事。開發Android平臺上的備忘錄十分必要。

1.4 設計目標

實現備忘錄的基本功能:添加事項的標題、內容并保存;列表顯示出已保存的所有事項;修改、刪除事項等。在手機備忘錄APP開發完成后,經過打包簽名,可運行在Andriod4.4及其以上版本。

1.5 開發環境和目標平臺

1.5.1開發環境

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

2)SQLite數據庫。

3)集成開發環境,Eclipse IDE for Java EE Develops。

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

1.5.2目標平臺

手機備忘錄APP開發完成后,經過打包簽名,可運行在目前市場上所有的Android手機上。

2功能分析

Android手機備忘錄是為Android用戶提供記事功能的項目,其目標是實現添加、編輯并保存事項,以及對已添加事件的操作,如查看、修改、刪除等。在該應用的構建中要用到SQLite數據存儲技術。總體功能框架如圖1所示。

各模塊功能如下:

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

修改事項:用戶在列表界面選擇某個事項后便全屏顯示該事項內容,同時可對該事項進行修改。

刪除事項:用戶在列表界面長按某事項,可以實現對多個選定事項的刪除。

增加事項:單擊加號按鈕,可以增加事項并保存。

3數據庫設計

使用SQLite數據庫管理系統,使用SQLite Expert Professional 5建立數據庫和數據表再將數據庫導入系統中。本數據庫名為notesDB,只設計一張數據表,名為notes,用于保存事項信息。數據表結構如下:

4界面設計

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

5 功能實現

5.1定義數據庫類

定義創建數據庫的類NotesDB,繼承自 SQLiteOpenHelper。

5.1.1 定義常量

定義字符串常量分別代表數據表名、事項ID號、事項內容、更新日期。

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

通過super調用父類的構造方法。

5.1.3 重寫方法onCreate(SQLiteDatabase db)

先將創建數據表的命令保存到字符串對象sql中,再通過執行db.execSQL(sql)實現數據表的創建。

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

該方法體為空語句。

5.2列表顯示功能實現

定義Activity的子類 NoteMainActivity并實現接口OnScrollListener、OnItemClickListener和OnItemLongClickListener,分別重寫接口中的所有方法,以實現列表滾動、單擊條目和長按條目的事件處理。

5.2.1定義成員變量

聲明列表視圖類ListView的私有對象listview;

聲明簡單適配器類SimpleAdapter的私有對象simp_adapter;

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

聲明私有按鈕類對象addNote;

聲明私有文本視圖類對象tv_content;

聲明私有數據庫創建類NotesDB對象DB;

聲明私有數據庫處理類SQLiteDatabase對象dbread;

5.2.2重寫onCreate()方法

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

處理“添加事項”按鈕addNote的事件:通過Intent對象進行數據傳遞并打開事項編輯界面,事項被編輯保存后,調用自定義方法RefreshNotesList()刷新列表視圖界面。分別監聽列表視圖listview的單擊事項、長按事項、滾動查看事項事件。

5.2.3定義方法RefreshNotesList()

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

5.2.4定義方法getData()

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

5.2.5 實現接口OnScrollListener

重寫接口OnScrollListener中的方法onScroll()處理列表條目滾動事件:方法體中無語句。

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

5.2.6 實現接口OnItemLongClickListener

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

使用Builder模式創建警示消息對話框,該對話框標題為“刪除該日志”,警示消息為“確認刪除嗎?”。

重寫接口DialogInterface.OnClickListener中的onClick()方法處理對話框中“確定”按鈕的單擊事件,方法體內容:獲取被長按的項目序號,在數據表中查詢到該序號對應的項目記錄并刪除。

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

返回true。

5.2.7 實現接口OnItemClickListener

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

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

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

5.3事項編輯功能實現

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

5.3.1 定義成員變量

聲明TextView類對象tv_date用于顯示日期,聲明 private EditText et_content作為事項內容編輯框,聲明“保存”按鈕對象private Button btn_ok作為,聲明“取消”按鈕對象private Button btn_cancel,聲明創建數據庫的對象private NotesDB DB,聲明處理數據庫的對象private SQLiteDatabase dbread,定義整型類變量public static int ENTER_STATE = 0辨識當前事項是否是新增事項,聲明字符串對象public static String last_content保存由列表視圖界面傳遞來的事項內容,聲明整型類變量public static int id表示當前被編輯事項的id。

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

設置顯示界面布局文件為noteedit.xml,通過布局文件中定義的id獲取界面中的日期顯示視圖tv_date、內容編輯框et_content、“保存”按鈕對象btn_ok及“取消”按鈕對象btn_cancel。設置軟鍵盤自動彈出。創建對象DB及dbread,通過Bundle類對象bundle獲取列表視圖界面傳遞來的事項內容賦給last_content,將該內容顯示在et_content中。

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

若ENTER_STATE==0且編輯框內容不為空,則在數據表中新增一條事項記錄;若ENTER_STATE!=0則更新數據表中的事項記錄。

重寫接口OnClickListener中方法public void onClick(View arg0),處理“取消”按鈕的點擊事件:調用finish()方法實現當前界面的關閉。

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

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

6運行結果

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

7 結論

利用開發工具eclipse+adt開發了android平臺上的備忘錄APP,該備忘錄實現了列表顯示、添加事項、單條編輯保存、逐條刪除等功能。該應用還需要進一步完善,可以增加批量刪除、定時提醒等功能。

參考文獻:

[1] 肖琨. Android Studio移動開發教程 [M]. 北京: 電子工業出版社出版, 2019..

[2] 王向輝,張國印,沈潔.Android應用程序開發[M]. 3版.北京:清華大學出版社,2016.

[3] 劉國柱,杜軍威,QST青軟實訓. Android程序設計與開發(Android Studio版) [M]. 北京:清華大學出版社,2017 .

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

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

[6]. Mr_cqh. Android項目實戰——一個簡單的記事本程序[EB/OL]. https://blog.csdn.net/Mr_cqh/article/details/80967084.

【通聯編輯:謝媛媛】

主站蜘蛛池模板: 伊人色在线视频| 国产精品私拍在线爆乳| 爱色欧美亚洲综合图区| 人人爽人人爽人人片| 精品伊人久久久久7777人| 国产91导航| 中国精品自拍| 久久久久无码国产精品不卡| 中文字幕人妻av一区二区| 久久国产亚洲欧美日韩精品| 免费一级毛片| aaa国产一级毛片| 欧美日韩资源| 青草精品视频| 精品少妇人妻av无码久久| 少妇精品在线| 狼友视频一区二区三区| 亚洲大尺度在线| 欧美一区二区三区不卡免费| 女人18一级毛片免费观看| 色国产视频| 亚洲精品国产综合99久久夜夜嗨| 又污又黄又无遮挡网站| 91美女视频在线| 在线精品视频成人网| 欧美在线视频不卡第一页| 亚洲色图另类| 国产精品综合色区在线观看| 亚洲最大看欧美片网站地址| 午夜丁香婷婷| a级毛片免费看| 在线欧美一区| 91久久性奴调教国产免费| 国产农村1级毛片| 国产一区二区丝袜高跟鞋| 国产性生交xxxxx免费| 国产在线一区视频| 亚洲精品免费网站| 午夜啪啪网| 亚洲天堂网视频| 操操操综合网| 国产va免费精品| 欲色天天综合网| 欧美一区二区人人喊爽| 亚洲V日韩V无码一区二区| 国产成人亚洲综合a∨婷婷| 无码日韩精品91超碰| 久久这里只精品国产99热8| 亚洲第一页在线观看| 日韩A∨精品日韩精品无码| 99视频只有精品| 亚洲专区一区二区在线观看| 亚洲色图欧美| 国产91视频免费| 日本一本正道综合久久dvd | 国产真实乱人视频| аⅴ资源中文在线天堂| 亚洲天堂久久| 国产黄色爱视频| 色综合成人| 亚洲天堂视频在线播放| 日韩天堂网| 精品久久综合1区2区3区激情| 中国成人在线视频| 日韩无码黄色| 国产女人18水真多毛片18精品| 98精品全国免费观看视频| 免费99精品国产自在现线| 欧美区国产区| 精品国产成人高清在线| 69视频国产| 亚洲中久无码永久在线观看软件| 波多野结衣视频网站| 国产91av在线| 成人免费一区二区三区| 波多野结衣久久高清免费| 亚洲不卡无码av中文字幕| 亚洲人成网址| 久久精品国产在热久久2019 | 欧美亚洲综合免费精品高清在线观看| 久久久久无码国产精品不卡| 中文字幕在线日韩91|