亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Android的日歷提醒軟件的設計與實現(xiàn)

        2011-06-14 09:59:58
        中原工學院學報 2011年3期
        關鍵詞:鬧鈴課表文件夾

        高 亮

        (中原工學院,鄭州 450007)

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

        1 Android平臺的體系結構

        Android平臺自下而上共分4層:操作系統(tǒng)層、運行時庫和其他庫層、應用框架層和應用程序?qū)覽3],如圖1所示.

        圖1 Android平臺體系結構

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

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

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

        (4)應用程序?qū)樱翰捎肑ava語言結合XM L開發(fā)的各種應用軟件,包括Android平臺自帶的瀏覽器、聯(lián)系人、電話等.

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

        2 功能劃分

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

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

        圖2 軟件運行主界面

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

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

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

        3 數(shù)據(jù)庫設計

        本軟件采用的數(shù)據(jù)庫是Android平臺內(nèi)嵌的SQLite數(shù)據(jù)庫.本軟件涉及到的數(shù)據(jù)庫主要關系模式如下:

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

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

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

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

        4 關鍵技術

        4.1 Activity間數(shù)據(jù)的傳遞

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

        實現(xiàn)從一個Activity向另一個Activity傳遞數(shù)據(jù)需要利用Intent對象.具體做法如下:

        (1)首先在源Activity中用以下代碼實現(xiàn)數(shù)據(jù)的傳送:

        Intent intent=new Intent();//創(chuàng)建一個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"為名設為參數(shù),待傳遞

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

        (2)在目的Activity中用以下代碼實現(xiàn)數(shù)據(jù)的獲取:

        Intent intent=get Intent();

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

        4.2 SQLite數(shù)據(jù)庫的訪問與操作

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

        4.3 自定義ListV iew的布局

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

        圖3 ListView默認的顯示樣式

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

        圖4 普通提醒列表界面

        要設計圖4所示的ListView顯示效果,需要自定義ListView的布局樣式文件,然后在創(chuàng)建ListAdapter對象時,應用此布局文件構造對象.例如本軟件自定義的布局文件名為forlistview.xml,內(nèi)含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});//利用布局文件及游標對象創(chuàng)建ListAdap ter對象.

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

        4.4 顯示并訪問手機內(nèi)的文件

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

        圖5 系統(tǒng)目錄結構瀏覽界面

        實現(xiàn)該目錄結構瀏覽功能的具體思路如下:

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

        (2)設計bindListView函數(shù),用于向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中綁定數(shù)據(jù)}

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

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

        4.5 鬧鐘的實現(xiàn)

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

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

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

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

        5 結 語

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

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

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

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

        猜你喜歡
        鬧鈴課表文件夾
        有效鬧鈴
        意林(2023年18期)2023-11-05 10:45:10
        磁力文件夾
        日出
        學生出招解決”日課牌“問題
        科教新報(2022年17期)2022-05-24 13:01:09
        如果我是校長
        運用VBA自動生成子課程表
        電子測試(2018年21期)2018-11-08 03:09:36
        調(diào)動右鍵 解決文件夾管理三大難題
        各地區(qū)學生課表
        留學生(2015年6期)2015-07-02 02:36:20
        麻辣戰(zhàn)國
        TC一鍵直達常用文件夾
        電腦迷(2015年1期)2015-04-29 21:24:13
        无码熟妇人妻av在线影片| 一本色道久久综合亚洲精品不 | 亚洲Av无码专区尤物| 国产成人亚洲精品一区二区三区 | 私人毛片免费高清影视院| 无码精品人妻一区二区三区漫画| 性色av无码中文av有码vr| 午夜婷婷国产麻豆精品| 久久这里只有精品黄色| 日本区一区二区三视频| 国产av无码专区亚洲av中文| 一区二区日韩国产精品| 色综久久综合桃花网国产精品| 真实夫妻露脸爱视频九色网| 亚洲熟女乱色综合亚洲av| 国产小毛片| 人妻中出中文字幕在线| 欧美又大又硬又粗bbbbb| 亚洲一线二线三线写真| 日本一区二区三区激情视频| 亚洲无人区乱码中文字幕动画 | 欧美黑吊大战白妞| 曰本极品少妇videossexhd| 日本高清不在线一区二区色| 免费看片的网站国产亚洲| 国产v片在线播放免费无码| 亚洲亚洲人成综合网络| 国产精品亚洲一区二区杨幂| 国产亚洲女人久久久久久| 一区二区三区手机看片日本韩国 | 曰韩内射六十七十老熟女影视 | 在线观看的网站| 人妻精品动漫h无码网站| 亚洲成a人片在线| 在线免费观看国产视频不卡| 久久久精品国产亚洲av网麻豆| 日本成本人片免费网站| 精品国产人妻一区二区三区| 一区二区三区日韩亚洲中文视频| 综合人妻久久一区二区精品 | 免费国产在线精品一区二区三区免|