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數據存儲技術??傮w功能框架如圖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.

【通聯編輯:謝媛媛】

主站蜘蛛池模板: 午夜精品国产自在| 国产精品成人观看视频国产| 日韩国产综合精选| 欧美日韩国产精品va| 97青草最新免费精品视频| 色婷婷在线影院| 久久黄色一级视频| 免费在线观看av| 精品无码日韩国产不卡av| 亚洲成AV人手机在线观看网站| 亚洲国产AV无码综合原创| 国产草草影院18成年视频| 日韩av无码精品专区| 午夜国产精品视频| 亚洲国产成人精品一二区| 美女国产在线| 不卡午夜视频| 国产日韩欧美在线播放| 精品国产Av电影无码久久久| 成人福利免费在线观看| 成人国产精品2021| 亚洲精品成人福利在线电影| 小蝌蚪亚洲精品国产| 国产丰满大乳无码免费播放| 国产啪在线91| 精品无码人妻一区二区| 亚洲国产中文精品va在线播放| 99er这里只有精品| 国产人人射| 久久国产免费观看| 一级毛片中文字幕| 免费AV在线播放观看18禁强制| 青青青伊人色综合久久| 久久国产香蕉| 极品性荡少妇一区二区色欲| 久久6免费视频| 无码专区第一页| 亚洲综合久久成人AV| 中国国产A一级毛片| 黄色网址手机国内免费在线观看| 亚洲色图欧美在线| 在线中文字幕日韩| 国产精品极品美女自在线看免费一区二区| 久久精品中文字幕免费| 亚洲欧美在线看片AI| 99热这里只有精品5| 国产欧美精品一区aⅴ影院| 国产精品xxx| 草草影院国产第一页| 五月天综合网亚洲综合天堂网| 色综合激情网| 在线国产毛片手机小视频| 99一级毛片| 97综合久久| 天天躁夜夜躁狠狠躁躁88| 精品国产中文一级毛片在线看| 亚洲一区二区三区麻豆| 色综合天天视频在线观看| 国产在线日本| 国产丝袜第一页| 久久精品免费看一| 国产第一页第二页| 亚洲床戏一区| 欧美成人精品一区二区| 成人午夜视频网站| 亚洲欧美国产五月天综合| 草逼视频国产| 欧美www在线观看| 国产黄色片在线看| 久久这里只有精品8| 青青青视频91在线 | 成人精品亚洲| 凹凸国产分类在线观看| 国产成人午夜福利免费无码r| 日韩午夜伦| 五月婷婷导航| 免费无码网站| 欧美亚洲激情| 国产毛片久久国产| 日韩亚洲高清一区二区| 综合五月天网| 日韩精品高清自在线|