生活中我們會常常遇到需要鬧鐘提醒;不管是起床還是生活中的事件提醒。
那作為Android開發如何自己開發壹個鬧鐘功能呢,是不是覺得很酷呢?接下來我們就實戰壹個鬧鐘。
本示例采用的是RecyclerView,其適配器類與常無二,其異在於繼承壹個代理類,為適配之後側滑刪除而準備
建立壹個內部類ViewHolder實現控件定義申明
實現onCreateViewHolder方法載入子項布局文件
綁定實體類,實現onBindViewHolder獲取數據
此處有三處狀態,第壹種狀態:第壹次進入程序,默認加載固定鬧鐘子項;第二種狀態:進入添加子項頁面,然後返回其主頁面,並判斷其switch是否為ture,如果為ture則添加子項;第三種狀態:程序被系統回收或者用戶停止程序,並再次進入程序,防止加載前壹時刻鬧鐘子項;
添加依賴 實現側滑主要依賴於壹個第三方包,然後使用RecyclerView進行子項綁定 依賴如下:
並在目錄build.gradle包下添加如下庫
其實現側滑刪除主要的玄機在於布局文件當中,使用RelativeLayout布局,將刪除按鈕固定在布局右方,並使用其他布局將其覆蓋,只有滑動時,才將其顯示。掩蓋側滑刪除按鈕與暴露側滑刪除按鈕效果對比圖如下
然後,在適配器類中,實現WeSwipeHelper.SwipeLayoutTypeCallBack接口,實現如下三個方法,第壹個方法為獲取側滑刪除按鈕的寬度;第二個方法為需要滑動的視圖,也就是覆蓋側滑刪除按鈕的布局;第三個方法為當視圖正在滑動時,用戶觸發單擊事件,自動還原滑動狀態
最後,在需要添加子項的視圖中綁定RecyclerView即可
通過監聽子項滑動刪除按鈕點擊事件,實現子項刪除
跳轉新增鬧鐘子項Acticity需要傳輸實體類對象,傳輸對象壹般需要序列化改類,其操作如下
定義實體類,並實現序列化
然後通過Intent傳輸Bundle對象
實現時間選擇主要使用系統集成的組件TimePicker,其使用方法如下 其有兩種顯示方式,第壹種為spinner,就是下拉滑動式,第二種為clock,即顯示壹個時鐘,通過滑動指針選擇時間
在style.xml文件中申明如下樣式
然後再指定Activcty申明即可
獲取數據比較簡單,實現對應接口即可
將獲取的數據通過SharedPreferences存儲起來,然後點擊存儲時,進行頁面跳轉,然後再該界面進行取出數據
存儲數據
首先判斷回調的switch數據是否為ture,如果為ture則保存該子項,然後再適配器類中進行數據添加
選中與默認兩種狀態效果圖如下
創建thumb和track樣式
創建壹個選擇器文件,有選中和默認兩種狀態
創新open_thumb.xml文件
創建shut_thumb.xml文件
同樣創建壹個選擇器,並用於兩種狀態
其中AlarmManager為系統主要操作類,參數為提醒模式、提醒時間(long型)、PendingIntent對象 以下有三種時間傳入,第壹種,直接傳入壹個Long型時間用於測試,第二種,通過設置系統啟動至今而設置時間,第三種,通過取出設置的時間,然後獲取系統當前時間,將其差傳入其中。
然後再清單文件中註冊服務
使用Intent實現服務啟動
殺死程序
本示例總***使用到了三個單例類:SP(SharedPreferences封裝)、TimeFormat(時間數據格式封裝)、KillProcess(殺死所有Activity)
SharedPreferences
KillProcess
文章帶這裏就完成了壹個簡單的鬧鐘;Android開發還有許多更加更多的知識學習。進壹步學習Android技術,我這裏推薦這份筆記方便學習,我就放在私信, 發送“核心筆記”或“手冊”即可獲取。朋友們可以免費領取!