Android—只需3步你也能做一个Android闹钟(2020-6-26)

下面是实现图:

步骤一:设置添加闹钟时的布局

要点:添加TimePicker组件
布局文件如下:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context=".MainActivity">    <TimePicker        android:id="@+id/time"        android:layout_width="match_parent"        android:layout_height="wrap_content"        tools:ignore="InvalidId" />    <Button        android:id="@+id/button"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="设置闹钟"        /></LinearLayout>
步骤二:设置闹钟启动的Activity及其布局

我只要了一个闹钟的图片如下:

布局文件如下:

<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".alarmActivity">    <ImageView        android:id="@+id/imageView"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:src="@drawable/naozhong"        tools:layout_editor_absoluteX="0dp"        tools:layout_editor_absoluteY="0dp" /></androidx.constraintlayout.widget.ConstraintLayout>
步骤三:在MainActivity类中设置闹钟具体看代码详解

闹钟类型:
AlarmManager.ELAPSED_REALTIME 在指定延迟后提醒
AlarmManager.ELAPSED_REALTIME_WAKEUP 在指定延迟后提醒,并唤醒系统
AlarmManager.RTC 在指定时间提醒
AlarmManager.RTC_WAKEUP 在指定时间提醒并唤醒系统

package com.example.test;import androidx.appcompat.app.AppCompatActivity;import android.app.AlarmManager;import android.app.PendingIntent;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TimePicker;import java.util.Calendar;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        final TimePicker timePicker=findViewById(R.id.time);  //获取时间拾取组件        Button button=findViewById(R.id.button);        button.setOnClickListener(new View.OnClickListener() {   //给'设置闹钟'按钮设置监听            @Override            public void onClick(View v) {                Intent intent=new Intent(MainActivity.this,alarmActivity.class);                PendingIntent pend=PendingIntent.getActivity(MainActivity.this,0,intent,0); //显示闹钟,alarmActivity                AlarmManager alarm= (AlarmManager) getSystemService(Context.ALARM_SERVICE);       // 通过Context.ALARM_SERVICE获取AlarmManager对象                Calendar calendar =Calendar.getInstance();                     //获取日历对象                calendar.set(Calendar.HOUR_OF_DAY,timePicker.getHour());       //利用时间拾取组件timePicker得到要设定的时间                calendar.set(Calendar.MINUTE,timePicker.getMinute());                calendar.set(Calendar.SECOND,0);                alarm.set(AlarmManager.RTC,calendar.getTimeInMillis(),pend);     //设定闹钟                //AlarmManager.ELAPSED_REALTIME 在指定延迟后提醒                //AlarmManager.ELAPSED_REALTIME_WAKEUP 在指定延迟后提醒,并唤醒系统                //AlarmManager.RTC     在指定时间提醒                //AlarmManager.RTC_WAKEUP    在指定时间提醒并唤醒系统            }        });    }}

一个简易的自制闹钟就做好了!

更多相关文章

  1. Android(安卓)指定销毁一个Activity
  2. Android状态栏提醒(Notification,NotificationManager)的使用
  3. 指定Toast显示时长
  4. Android(安卓)小代码集
  5. 00024-Android(安卓)Junit使用
  6. Shape使用
  7. android 使用xml制作背景图片(shape的用法)
  8. 指定浏览器访问指定页面(支持UC、Opera、QQ、Dolphin、Skyfire、
  9. android相对布局的案例

随机推荐

  1. Android创建一个Activity的方法分析
  2. Android生成keystore方法
  3. MPAndroidChart项目实战(四)——柱状图实现
  4. IPCThreadState 详解
  5. Android实现卡拉OK字幕效果方法
  6. 网络请求工具类WebServiceUtils
  7. 阅读《Android(安卓)从入门到精通》(33)—
  8. Android(安卓)播放 Gif 图片控件
  9. Android实现图片 高斯模糊,以及图片镜像
  10. 彻底解决Android(安卓)studio中文乱码问