android,闹钟定时功能,实现过程
2016-04-27 22:43
691 查看
由于最近参加一个比赛写的智能排插助手需要用到定时触发功能,于是做了一个类似闹钟功能,存储闹钟信息用的时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=”@color/black”,会方便调试
3.在没有添加闹钟是listview是有上下分割线的,用的是LinearLayout分割线属性
至于listView和item的布局具体代码在我的github里面下来看看
在Activity方面我们需要做的事有
1.初始化布局,拿到各个View的实例,
2.拿到数据库的指针,设置listView的adapter,这里用的是simpleCursorAdapter,关于simplecursorAdapter构造函数最后一个参数Flag需要注意下,这个页面最终的就是simplecursorAdapter设置,因为这个主要是和数据类交互的类,如果你想锻炼下自己可以用BaseAdapter,自己封装类,看你喜好
3为listView和Button设置监听,这里刷新listView用的时
小二上大图。。
布局部分:
这里上面时用简单的textView和ImageButton,接着时timepicker,接着是一个ListView,小小的剧透下,listView用的时simpleAdapter,点击后会神奇的出现一个开关选择的dialog,和打开和关闭的dialog,哇哈哈这里用的Alertdialog
这里需要注意的有
1.timepicker,可能时android系统原因,timepicker默认
但程序在我的华为p7里面却是上图那样,布局反差很大,一开始让我这菜鸟措手不及,问了学安卓的“同志”们也没人知道,最后在神奇的stayoverflow找到答案,下面这句话可以让他变回面条状,哈哈
代码部分:
1.初始化各个组件,获取实例
2.为listView设置数据,用的时simpleAdapter
3,设置各个监听,并将
4.结束时把信息存入数据库,并且系统中设置闹钟
这里要注意的时PendingIntent第二个参数,为了能个设置多个参数,所以我用的时存闹钟信息在数据库的id
上图
这里时由闹钟长按进入,就一个listView,用的还是SimpleCursorAdapter,这里要注意的时重写bindView,因为点击删除按钮的时候要能够监听的到代码
还有数据库那一部分我没讲,这里就省略啦,可以看我的代码
基本上要注意的就是这样了,我只贴出我认为关键的代码部分,和我当时遇到的一些坑我都会以注意的形式说出来,至于源代码在我文章开头提供github地址里面下载下来看看,因为这是这个定时部分我项目的一部分,为防止朋友下载下来不知道在我项目里的哪部分,这里给出设计的代码文件的图片,方便朋友们查找
有关数据哭的类
源码地址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=”@color/black”,会方便调试
3.在没有添加闹钟是listview是有上下分割线的,用的是LinearLayout分割线属性
<LinearLayout 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地址里面下载下来看看,因为这是这个定时部分我项目的一部分,为防止朋友下载下来不知道在我项目里的哪部分,这里给出设计的代码文件的图片,方便朋友们查找
有关数据哭的类
相关文章推荐
- Android 6.0 运行时权限处理完全解析
- 自定义时间选择器DatePicker
- Android原生控件---ActionBar详解
- Android多线程加速下载
- Json数组的解析--android
- Android Framework系统服务详解
- Android转型javaweb心得体会(第一个月)
- android 中layer-list的用法
- (4.6.11.7)使用BUCK 编译Android应用
- (4.6.11.6)基于Facebook Buck改造Android构建系统之基本概念
- android 常用单词
- (4.6.11.5)基于Facebook Buck改造Android构建系统之初体验
- 轮询器 android.os.Looper
- Android学习笔记(二)自定义View(1)
- Android源码分析之Binder进程间通信一
- android studio 程序真机运行中文显示乱码
- Android 开发值得订阅的日报和周刊
- Android---启动第三方应用
- 初学android开发--动画效果实现
- Ubuntu搭建Android-Studio环境