使用Android写一个简易的闹钟
时间: 2023-09-09 11:05:43 浏览: 108
好的,下面是一个简单的Android闹钟程序的实现:
1. 首先,在Android Studio中创建一个新项目,并添加一个Activity。
2. 在Activity的布局文件中添加一个时间选择器和一个按钮,用于设置闹钟的时间和启动闹钟。
3. 在Activity中获取时间选择器和按钮,并设置按钮的点击事件。
4. 在按钮的点击事件中,获取时间选择器中选择的时间,并将其转换为Calendar对象。
5. 使用AlarmManager类来设置闹钟,在AlarmManager中设置闹钟的时间和触发的事件。
6. 在触发事件中,创建一个Notification对象,并使用NotificationManager类来显示通知。
下面是具体的代码实现:
activity_main.xml布局文件:
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TimePicker
android:id="@+id/timePicker"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/startButton"
android:text="Start Alarm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
```
MainActivity.java代码文件:
```java
public class MainActivity extends AppCompatActivity {
private TimePicker timePicker;
private Button startButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
timePicker = findViewById(R.id.timePicker);
startButton = findViewById(R.id.startButton);
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int hour = timePicker.getHour();
int minute = timePicker.getMinute();
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);
calendar.set(Calendar.SECOND, 0);
Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
Toast.makeText(MainActivity.this, "Alarm set for " + hour + ":" + minute, Toast.LENGTH_SHORT).show();
}
});
}
}
```
AlarmReceiver.java代码文件:
```java
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, "alarm_channel")
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle("Alarm")
.setContentText("Wake up!")
.setPriority(NotificationCompat.PRIORITY_HIGH);
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context);
notificationManager.notify(0, builder.build());
}
}
```
在AndroidManifest.xml文件中添加AlarmReceiver的声明:
```xml
<receiver android:name=".AlarmReceiver"/>
```
注意:在Android 8.0及以上版本中,需要为通知添加一个通知渠道。可以在MainActivity的onCreate方法中添加以下代码:
```java
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel("alarm_channel", "Alarm", NotificationManager.IMPORTANCE_HIGH);
NotificationManager notificationManager = getSystemService(NotificationManager.class);
notificationManager.createNotificationChannel(channel);
}
```
这样就完成了一个简单的Android闹钟程序的实现。
阅读全文