环境搭建就不讲了搏巧,直接说开发。
1、时间选择对话框(TimePicker)
2、获取闹钟管理器并对其进行设置
3、注册广播接收器
掌握了这两点,写程序就很简单了。
1、新建android项目:Alarm,sdk版本选择2.2,Package name:com.lql.activity,Main Activity:Alarm
2、编写界面:直接修改layout中的main.xml文件,代码如下:
Xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"
>
<Button
android:id="@+id/timeBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/time"
android:textSize="20sp"
/>
<Button
android:id="@+id/cancelAlarmBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/cancelAlarm"
/>
</LinearLayout>
界面的效果如下:
3、修改Alarm.java这个activity,在该Activity中需要做这样几件事:
获取界面上的两个按钮组件,并给其绑定事件监听器
第一个时间按钮,点击后,显示时间选择对话框(TimePicker),供选择小时和分钟,并设置闹钟
第二个按钮,点击之后需要当前设定的穗银粗闹钟
比较难写的代码就是闹钟设置:
//设置时间
Java代码
timeBtn.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
Log.d(TAG, "click the time button to set time")
calendar.setTimeInMillis(System.currentTimeMillis())
new TimePickerDialog(Alarm.this,new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker arg0, int h, int m) {
//更新按钮上的时间
timeBtn.setText(formatTime(h,m))
//设置日历的猜镇时间,主要是让日历的年月日和当前同步
calendar.setTimeInMillis(System.currentTimeMillis())
//设置日历的小时和分钟
calendar.set(Calendar.HOUR_OF_DAY, h)
calendar.set(Calendar.MINUTE, m)
//将秒和毫秒设置为0
calendar.set(Calendar.SECOND, 0)
calendar.set(Calendar.MILLISECOND, 0)
//建立Intent和PendingIntent来调用闹钟管理器
Intent intent = new Intent(Alarm.this,AlarmReceiver.class)
PendingIntent pendingIntent = PendingIntent.getBroadcast(Alarm.this, 0, intent, 0)
//获取闹钟管理器
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE)
//设置闹钟
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent)
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 10*1000, pendingIntent)
Toast.makeText(Alarm.this, "设置闹钟的时间为:"+String.valueOf(h)+":"+String.valueOf(m), Toast.LENGTH_SHORT).show()
Log.d(TAG, "set the time to "+formatTime(h,m))
}
},calendar.get(Calendar.HOUR_OF_DAY),calendar.get(Calendar.MINUTE),true).show()
}
})
代码里面有注释,这里就不多解释了,其中new TimePickerDialog为创建时间选择对话框。为了能够看到效果,我给闹钟添加了重复提醒:alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 10*1000, pendingIntent)。
还要为取消闹钟按钮添加事件监听器:
Java代码
//取消闹钟按钮事件监听
final Button cancelAlarmBtn = (Button)findViewById(R.id.cancelAlarmBtn)
cancelAlarmBtn.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
Intent intent = new Intent(Alarm.this,AlarmReceiver.class)
PendingIntent pendingIntent = PendingIntent.getBroadcast(Alarm.this, 0, intent, 0)
//获取闹钟管理器
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE)
alarmManager.cancel(pendingIntent)
Toast.makeText(Alarm.this, "闹钟已经取消!", Toast.LENGTH_SHORT).show()
}
})
在点击取消闹钟按钮时,取消之前设置的闹钟,核心代码就4行。
4、编写广播接收器,用来接收闹钟的广播事件,然后进行相关处理,
Java代码
public class AlarmReceiver extends BroadcastReceiver {
/* (non-Javadoc)
* @see android.content.BroadcastReceiver#onReceive(android.content.Context, android.content.Intent)
*/
@Override
public void onReceive(Context arg0, Intent data) {
Log.d(Alarm.TAG, "the time is up,start the alarm...")
Toast.makeText(arg0, "闹钟时间到了!", Toast.LENGTH_SHORT).show()
}
}
这个代码就很简单了,主要是要继 承 BroadcastReceiver 这个类,然后重写onRecive方法。onRecive方法在闹钟的时间达到之后会执行,在这里我们可以做自己的事情,比如启动某个程序,或者播放铃声,我这里就是简单的提示一下,使用的是Toast。
5、在android的AndroidManifest.xml文件中注册广播接收器:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
Xml代码
package="com.ql.activity"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<receiver android:name=".AlarmReceiver" android:process=":remote" />
<activity android:name=".Alarm"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="8" />
</manifest>
核心的配置为<receiver android:name=".AlarmReceiver" android:process=":remote" />,这也是闹钟程序的关键,如果不做这个配置,那么时间到了之后,闹钟将不会提示。
接下来就是到模拟器上测试,运行截图如上图。程序源代码见附件。
首先看看官方提供的模态d窗
api如下:
示例:
这样的模态d窗,充其量只能做个alert,提示一下信息。
但是并不能使用它来处理复杂性的d窗业务,因此写了Michael从信运新自定义了一个,采用了仿原生的样式写法
wxml****:
wxss:
js:
相关连接: http://blog.csdn.net/michael_ouyang/article/details/54700871
------------------------------------------------------------
微信开发者工具的快捷键
微信小程序的文件结构 —— 微信小程序教程系列(1)
微信小程序的生命周期实例演示 —— 微信小程序教程系列(2)
微信小程序的动态修改视图层的数据 —— 微信小程序教程系列(3)
微信小程序的新建页面 —— 微信小程序教程系列(4)
微信小程序的如何使用全局属性 —— 微信小程序教程系列(5)
微信小程序的页面跳转 —— 微信小程序教程系列(6)
微信小程序标题橡坦哗栏和导航栏的设置 —— 微信小程序教程系列(7)
微信小程序的作用域和模块化 —— 微信小程序教程系列(8)
微信小程序视图层的数据绑定 —— 微信小程序教程系列(9)
微信小程序视图层的条件渲染 —— 微信小程序教程系列(10)
微信小程序视图层的列表渲染 —— 微信小程序教程系列(11)
微信小程序视图层的模板 —— 微信小程序教程系列(12)梁行
微信小程序之wxss —— 微信小程序教程系列(13)
微信小程序的网络请求 —— 微信小程序教程系列(14)
微信小程序的百度地图获取地理位置 —— 微信小程序教程系列(15)
微信小程序使用百度api获取天气信息 —— 微信小程序教程系列(16)
微信小程序获取系统日期和时间 —— 微信小程序教程系列(17)
微信小程序之上拉加载和下拉刷新 —— 微信小程序教程系列(18)
微信小程序之组件 —— 微信小程序教程系列(19)
微信小程序之微信登陆 —— 微信小程序教程系列(20)
------------------------------------------------------------
微信小程序之顶部导航栏实例 —— 微信小程序实战系列(1)
微信小程序之上拉加载(分页加载)实例 —— 微信小程序实战系列(2)
微信小程序之轮播图实例 —— 微信小程序实战系列(3)
微信小程序之仿android fragment之可滑动的底部导航栏实例 —— 微信小程序实战系列(4)
微信小程序之登录页实例 —— 微信小程序实战系列(5)
微信小程序之自定义toast实例 —— 微信小程序实战系列(6)
微信小程序之自定义抽屉菜单(从下拉出)实例 —— 微信小程序实战系列(7)
微信小程序之自定义模态d窗(带动画)实例 —— 微信小程序实战系列(8)
------------------------------------------------------------
微信小程序之侧栏分类 —— 微信小程序实战商城系列(1)
微信小程序之仿淘宝分类入口 —— 微信小程序实战商城系列(2)
微信小程序之购物数量加减 —— 微信小程序实战商城系列(3)
微信小程序之商品属性分类 —— 微信小程序实战商城系列(4)
微信小程序之购物车 —— 微信小程序实战商城系列(5)
未完待续。。。
更多小程序的教程: http://blog.csdn.net/column/details/14653.html
谢谢观看,不足之处,敬请指导
连接哪里的数据库,?远程吗,还是本地本地的话我这有高培迹,连接远程数据库的话,弄不了,需要写web端去连接戚并数据库
本地数据库就用android自带的中派sqlite数据库
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)