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

基于Android的日歷提醒軟件的設計與實現

2011-06-14 09:59:58
中原工學院學報 2011年3期
關鍵詞:數據庫

高 亮

(中原工學院,鄭州 450007)

近年來,Google智能手機平臺Android得到了手機行業及客戶的普遍認可[1],呈爆炸性的趨勢發展,為移動運營商、手機制造商、軟件開發商及客戶提供了無限的發展空間[2],使市場上不斷涌現出大量的基于Android平臺的軟件和增值服務.目前,在Google Market上已存在較多版本的日歷提醒軟件,但大多是通用軟件.本文提到的這款軟件是為教師和學生等校園人員量身定做的,它在實現提醒類型及鈴聲的自定義、按設定進行鬧鐘提醒功能的同時,還實現了課程表管理及其定時提醒.

1 Android平臺的體系結構

Android平臺自下而上共分4層:操作系統層、運行時庫和其他庫層、應用框架層和應用程序層[3],如圖1所示.

圖1 Android平臺體系結構

(1)操作系統層:Android實際以Linux作為系統內核,在手機物理硬件與Android軟件棧之間處理核心系統服務.

(2)Android運行時庫和其他庫層:包括一些核心的C/C++庫,供系統的各種組件使用.本設計多次用到的操作數據庫的SQLite庫就屬于該層.

(3)應用框架層:為應用程序提供系統API.UI組件就是其中一個重要的部分.

(4)應用程序層:采用Java語言結合XM L開發的各種應用軟件,包括Android平臺自帶的瀏覽器、聯系人、電話等.

(本文介紹的日歷提醒軟件即屬于應用程序層,它會調用應用框架層提供的各種API達到既定的功能效果.

2 功能劃分

本軟件分為4個模塊,分別是提醒類型及鈴聲管理模塊、課表參數設置模塊、普通提醒管理模塊和課表設定模塊.軟件運行主界面如圖2所示.

(1)提醒類型及鈴聲管理模塊.可通過本模塊定制用戶需要的提醒種類及其鈴聲,可對提醒的種類進行增、刪及查看操作,可以選擇手機內任何路徑下的音樂文件作為提醒鈴聲進行設定.

圖2 軟件運行主界面

(2)課表參數設置模塊.可通過本模塊設置與課表相關的參數,如學期起始日期、每天的課程節數、每節的上課時間、每節課鬧鈴提醒時機等信息,以便在設定課表后,根據這些參數自動制定鬧鈴時間.

(3)普通提醒管理模塊.除課程提醒之外的其他提醒統稱普通提醒.在本模塊中可對普通提醒進行增、刪和查看操作,設定提醒的時間、類型、內容及提醒周期.在保存提醒的一瞬間,程序會根據當前的設定,自動創建鬧鐘.

(4)課表設定管理模塊.本模塊專門用于設定課表,可設定每門課程每次課的上課時間(周次和節次).在設定周次時,可以批量設定,例如,可以以“1-10”的方式標示從第1周至第10周,或以“1,3,5,7,9”的方式標示1、3、5、7、9周,但是,“-”符號不得與“,”符號混用.本模塊具有對課表的增、刪和查看功能.同普通提醒管理模塊一樣,在保存課表的一瞬間,程序會根據當前設定的課表參數,結合當前課表信息的詳細內容,自動計算鬧鈴時間和周期,并創建鬧鐘.

3 數據庫設計

本軟件采用的數據庫是Android平臺內嵌的SQLite數據庫.本軟件涉及到的數據庫主要關系模式如下:

提醒類型(提醒類型編號、提醒類型名稱、鈴聲);

課表參數(參數名稱、參數值);

普通提醒(提醒編號、提醒名稱、提醒類型編號、提醒時間、提醒周期);

課表設定(課表編號、課程名稱、上課周次范圍、上課節次).

4 關鍵技術

4.1 Activity間數據的傳遞

在本軟件中涉及到大量的A ctivity間數據傳遞的需求.如點擊日歷中的某個日期,打開普通提醒管理模塊或查看課表時,需要將當前選中的日期傳遞到新的Activity中,以便在新的Activity中依照當前選中的日期,來顯示該日期的提醒信息或課表信息.

實現從一個Activity向另一個Activity傳遞數據需要利用Intent對象.具體做法如下:

(1)首先在源Activity中用以下代碼實現數據的傳送:

Intent intent=new Intent();//創建一個Intent對象

intent.setC lass(CalendarActivity.this,SetNotify.class);//設置intent所對應的源Activity對象及目標Activity類

intent.putExtra("the Date",this Month.get(Calendar.YEAR)+"-"+(this Month.get(Calendar.MONTH)+1)+"-"+this Month.get(Calendar.DAY_OF_MONTH));//將當前選中的時間,以"the Date"為名設為參數,待傳遞

Calendar Activity.this.start Activity(intent);//啟動目標Activity,并將參數傳遞給目標Activity

(2)在目的Activity中用以下代碼實現數據的獲取:

Intent intent=get Intent();

the Date=intent.get String Extra("the Date");//獲取theDate參數內的值

4.2 SQLite數據庫的訪問與操作

在Android平臺下訪問SQLite數據庫的方法較簡單,可以使用openOrCreateDatabase函數創建或打開數據庫,并使用該函數返回的SQLiteDatabase對象的execSQL函數方法執行非查詢SQL語句,使用rawQuery方法執行查詢語句,并返回游標對象Cursor來遍歷查詢結果中的數據.

4.3 自定義ListV iew的布局

在Android平臺下,List View默認的顯示樣式如圖3所示.

圖3 ListView默認的顯示樣式

從圖3可見,默認狀態下,ListView顯示的數據每行只能顯示2個信息——主顯信息(大號字)與非主顯信息(小號字).如果需求復雜起來,比如圖4所示的普通提醒列表界面需要每行顯示4個信息——提醒名稱、提醒時間、提醒類型及提醒周期,這時,默認的ListView布局就無法滿足需求了.

圖4 普通提醒列表界面

要設計圖4所示的ListView顯示效果,需要自定義ListView的布局樣式文件,然后在創建ListAdapter對象時,應用此布局文件構造對象.例如本軟件自定義的布局文件名為forlistview.xml,內含5個Text-View,名稱分別為notiid(用戶存儲提醒信息的主鍵)、no ticontent(提醒名稱)、typename(提醒類型)、notitime(提醒時間)和noticycle(提醒周期),其中notiid設置為不可見的.核心代碼如下:

List A dapter adapter=new Simple Cursor Adapter(this,R.lay out.for listview,cur,

new String[]{"_id","notiContent","typenam e","notiTime","notiCycle"},new

int[]{R.id.notiid,R.id.noticontent,R.id.typename,R.id.notitime,R.id.noticycle});//利用布局文件及游標對象創建ListAdap ter對象.

lv.setAdapter(adapter);//將數據綁定到List-V iew中并顯示

4.4 顯示并訪問手機內的文件

本軟件在設定提醒類型時,可以為各提醒類型指定手機系統內任何位置的音樂文件作為提醒鈴聲,因此需要為用戶提供瀏覽系統目錄結構的功能界面,如圖5所示.

圖5 系統目錄結構瀏覽界面

實現該目錄結構瀏覽功能的具體思路如下:

(1)為ListView設計2個輔助布局文件directory_list.xml和file_row.xml,前者用于設定顯示空文件夾的效果,后者用于設定顯示文件和文件夾的效果.

(2)設計bindListView函數,用于向ListV iew中綁定當前所選目錄下的文件及文件夾列表.

private void bind ListView(File[]files){

items=new A rrayList<String>();

items.add("返回上一層");

for(File file:files)//遍歷每一個文件或文件夾

items.add(file.getPath());//將遍歷到的文件或文件夾路徑添加到items集合

A rrayAdapter<String>fileList=new A rray-A dapter<String>(this,

R.layout.file_row,items);//以item s為源構造適配器

setListAdapter(fileList);//向ListView中綁定數據}

(3)通過File對象的listFiles函數獲取當前文件夾下的所有文件及文件夾的集合,并將該集合作為參數傳遞給bindListView函數,以顯示這些文件和文件夾信息.

(4)監聽ListView的onListItemC lick事件.首先通過file對象的isDirectory函數判斷當前選中的內容是文件夾還是文件;如果是文件夾,就獲取該文件夾下的子文件及文件夾的集合,并將其作為參數傳遞給bind ListView函數以繼續顯示這些子文件和文件夾,否則,將選中的音樂文件的路徑更新到數據庫中.

4.5 鬧鐘的實現

在Android平臺下實現鬧鈴功能需要使用Alarm Manager類,對應Alarm Manager有一個Alarm-Manager Service服務程序,該服務程序用于提供鬧鈴服務.應用程序只要注冊一個鬧鈴,Alarm Manager Service就會適時設置即將觸發的鬧鈴給鬧鈴設備,并且一直監聽鬧鈴設備,一旦有鬧鈴觸發或者是鬧鈴事件發生,Alarm Manager Servie服務程序就會發出廣播,接下來就由廣播接受者BroadCastReceiver來處理鬧鈴事件,所以實現鬧鈴功能需要以下3個基本步驟:

步驟一:設計一個繼承BroadcastReceiver類的子類,重寫其onReceive方法,該方法就是接受到鬧鈴廣播時要觸發的方法,在該方法中可以控制鬧鈴事件來臨時要做的事情,如開啟一個線程播放鬧鈴音樂,并彈出對話框,提問用戶是否關閉鬧鈴.在彈出對話框時要注意的一點是,在BroadcastReceiver類中無法直接使用AlertDialog,應將AlertDialog放在Activity中,再在BroadcastReveiver中用startActivity啟動這個Activity,而且啟動這個Activity所使用的Intent應調用set-Flags方法,指定其標記為Intent.FLAG_ACTIVITY_NEW_TASK,說明此次啟動的Activity是新的任務.

步驟二:注冊鬧鈴.首先使用Pending Intent的getBroadcast方法來調用步驟一中創建的類作為目標組件;接著利用getSystemService(ALARM_SERVICE)獲取Alarm Manager;最后依次調用A larm-M anager的set方法注冊鬧鈴,用setRepeating方法設置鬧鈴周期.

步驟三:在需要關閉鬧鈴的位置調用Alarm-Manager的cancel方法,取消鬧鈴.

5 結 語

本文介紹了在Android平臺下開發日歷提醒軟件的一般方法,重點介紹了本軟件的設計思路及在開發本軟件過程中所使用到的Android下的關鍵技術,這些技術都是開發Android平臺下應用軟件的常用知識點.本軟件為校園用戶提供了一款便利的手機軟件,目前已進入試用階段.

[1] 王希貝.Android開源手機與知識產權保護淺析[J].中國發明與專利,2010(11):68-69.

[2] 賈理華,樂燕芬,施偉斌.基于Android平臺簡易即時通訊的研究與設計[J].常州工學院學報,2010(4):51-53.

[3] 楊豐盛.Android應用開發揭秘[M].北京:機械工業出版社,2010.

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 99精品在线视频观看| 一级在线毛片| 国产精品成人一区二区不卡| 亚洲视频二| 国内精品九九久久久精品| 亚洲综合第一区| 国产精品女熟高潮视频| 亚洲无码高清一区二区| 色香蕉网站| 国产在线无码av完整版在线观看| 国产福利一区在线| 尤物亚洲最大AV无码网站| 国产乱码精品一区二区三区中文| 无码一区18禁| 婷婷亚洲视频| 亚洲最黄视频| 国产国模一区二区三区四区| 国产素人在线| 国产一国产一有一级毛片视频| 午夜精品国产自在| 国产日韩精品欧美一区喷| 久精品色妇丰满人妻| h网站在线播放| 日本a级免费| 国产高潮流白浆视频| 中文字幕在线看视频一区二区三区| 国产原创第一页在线观看| 国产熟女一级毛片| 五月激激激综合网色播免费| 亚洲精品国产综合99| 无遮挡国产高潮视频免费观看| 色九九视频| 亚洲成人一区二区| 大陆精大陆国产国语精品1024| AV不卡国产在线观看| 成人日韩精品| 亚洲视频免费播放| 伊伊人成亚洲综合人网7777| 亚洲 欧美 中文 AⅤ在线视频| 任我操在线视频| 六月婷婷激情综合| 97久久精品人人做人人爽| 国产亚洲欧美在线人成aaaa| 色噜噜综合网| a色毛片免费视频| 丝袜国产一区| www.国产福利| 国产伦片中文免费观看| 狠狠综合久久| 日韩无码视频播放| 亚洲精品老司机| 国产在线视频欧美亚综合| 无码日韩人妻精品久久蜜桃| 中文字幕伦视频| 久久久久久久久亚洲精品| 亚洲最黄视频| 国产视频入口| 在线色国产| 一本大道视频精品人妻| 国产欧美综合在线观看第七页| 亚洲欧洲日韩综合色天使| 精品亚洲国产成人AV| 国产原创第一页在线观看| 亚洲欧美成人综合| 午夜限制老子影院888| 国产自在自线午夜精品视频| 亚洲欧美一区二区三区图片| 亚洲乱伦视频| 久操线在视频在线观看| 都市激情亚洲综合久久| 少妇高潮惨叫久久久久久| 国产xxxxx免费视频| 少妇精品久久久一区二区三区| 亚洲欧美成aⅴ人在线观看| 一级片一区| 国产精品不卡永久免费| 国产在线观看一区精品| 国产乱子精品一区二区在线观看| 啪啪啪亚洲无码| 欧美日韩国产一级| 久久综合色视频| 国内精品久久人妻无码大片高|