Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android - 鬧鐘定時功能

android - 鬧鐘定時功能

編輯:關於Android編程

由於最近參加一個比賽寫的智能排插助手需要用到定時觸發功能,於是做了一個類似鬧鐘功能,存儲鬧鐘信息用的時android自帶的數據庫

源碼地址https://github.com/waterCode/SaveEner.git
項目名為saveenergy
考慮到一些人沒有用git,因為代碼還有完善和修改的地方,等我代碼全部寫完後之後我會在csdn文件存儲上傳代碼,不過學github還是有很多好處,備份代碼就時一大好處,再也不用壓縮文件傳到雲盤啦,哈哈

項目裡面的model名為saveenergy的就是我這個項目的源代碼

大家一起進步哦,堅持,努力,終有一天我們都可以成為他人口中的大神
有什麼問題可以下方留言,我會定時看博客滴
(一)鬧鐘信息顯示部分,一共3部分噢(⊙o⊙)

先上圖片這裡寫圖片描述,這裡主要用了LinearLayout布局,裡面有一個listView和imageButton,先說個人覺得要注意的的幾點
1.imageButton自帶的時灰色背景,textColor要設成透明.
2.這我用的時綠色背景,listView所用的item布局,textView字體白色的,為了方便調試,用tools:textColor=”@colZ喎?/kf/ware/vc/" target="_blank" class="keylink">vci9ibGFjayZyZHF1bzssu+G3vbHjtffK1DxiciAvPg0KMy7U2sO709DM7bzTxNbW08rHbGlzdHZpZXfKx9PQyc/PwrfWuO7P37XEo6zTw7XEysdMaW5lYXJMYXlvdXS31rjuz9/K9NDUPGJyIC8+DQo8Y29kZT48bGluZWFybGF5b3V0IGJyPQ==""> android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:divider="@drawable/my_divider"
android:showDividers="beginning|end">
至於listView和item的布局具體代碼在我的github裡面下來看看

在Activity方面我們需要做的事有
1.初始化布局,拿到各個View的實例,
2.拿到數據庫的指針,設置listView的adapter,這裡用的是simpleCursorAdapter,關於simplecursorAdapter構造函數最後一個參數Flag需要注意下,這個頁面最終的就是simplecursorAdapter設置,因為這個主要是和數據類交互的類,如果你想鍛煉下自己可以用BaseAdapter,自己封裝類,看你喜好
3為listView和Button設置監聽,這裡刷新listView用的時

cursorAdapter .notifyDataSetChanged();
    (二)接下來當然時鬧鐘編輯頁面啦,加油繼續往下看

小二上大圖。。這裡寫圖片描述
布局部分:
這裡上面時用簡單的textView和ImageButton,接著時timepicker,接著是一個ListView,小小的劇透下,listView用的時simpleAdapter,點擊後會神奇的出現一個開關選擇的dialog,和打開和關閉的dialog,哇哈哈這裡用的Alertdialog
這裡需要注意的有
1.timepicker,可能時android系統原因,timepicker默認這裡寫圖片描述
但程序在我的華為p7裡面卻是上圖那樣,布局反差很大,一開始讓我這菜鳥措手不及,問了學安卓的“同志”們也沒人知道,最後在神奇的stayoverflow找到答案,下面這句話可以讓他變回面條狀,哈哈

android:timePickerMode="spinner"

代碼部分:
1.初始化各個組件,獲取實例
2.為listView設置數據,用的時simpleAdapter
3,設置各個監聽,並將
4.結束時把信息存入數據庫,並且系統中設置鬧鐘

這裡要注意的時PendingIntent第二個參數,為了能個設置多個參數,所以我用的時存鬧鐘信息在數據庫的id

int id=dbOperator.getAlarmId(time);//獲得新添加時鐘在數據庫的id
        Intent intent=new Intent(this, AlarmReciever.class);
        intent.putExtra("_id",id);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(this,id,intent,0);
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
        alarmManager.set(AlarmManager.RTC_WAKEUP,alarm.getAlarmTime().getTimeInMillis(),pendingIntent);
(三)就是刪除鬧鐘部分,最後一部分,堅持看下去

上圖這裡寫圖片描述
這裡時由鬧鐘長按進入,就一個listView,用的還是SimpleCursorAdapter,這裡要注意的時重寫bindView,因為點擊刪除按鈕的時候要能夠監聽的到代碼

 @Override
        public void bindView(View view, final Context context, final Cursor cursor) {
            super.bindView(view, context, cursor);
            final int id = cursor.getInt(0);
            ImageButton imageButton = (ImageButton)view.findViewById(R.id.alarm_delete_button);
            imageButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    DatabaseOperator operator = new DatabaseOperator(context);
                    operator.delete(id);
                    cursor.requery();
                    adapter.notifyDataSetChanged();

                }
            });

        }

還有數據庫那一部分我沒講,這裡就省略啦,可以看我的代碼
基本上要注意的就是這樣了,我只貼出我認為關鍵的代碼部分,和我當時遇到的一些坑我都會以注意的形式說出來,至於源代碼在我文章開頭提供github地址裡面下載下來看看,因為這是這個定時部分我項目的一部分,為防止朋友下載下來不知道在我項目裡的哪部分,這裡給出設計的代碼文件的圖片,方便朋友們查找
這裡寫圖片描述
這裡寫圖片描述
有關數據哭的類
這裡寫圖片描述
這裡寫圖片描述

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved