17.消息,通知和广播

通过以下四种方式可以实现

在这里插入图片描述

通过Toast显示消息提示框

Toast.makeText(MainActivity.this,"或者就是为了改变世界",Toast.LENGTH_SHORT).show();

使用AlertDialog实现对话框

在这里插入图片描述
以下是主要代码:

package com.example.pratice6;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    Button b1;
    Button b2;
    Button b3;
    Button b4;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        b1 = findViewById(R.id.b1);
        b2 = findViewById(R.id.b2);
        b3 = findViewById(R.id.b3);
        b4 = findViewById(R.id.b4);
        //显示带取消、确定按钮的对话框
        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //创建AlertDialog对象
                AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
                alertDialog.setIcon(R.drawable.img1);//设置图标
                alertDialog.setTitle("标题");//设置标题
                alertDialog.setMessage("活着就是为了改变世界");//设置内容
                alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "否", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(MainActivity.this,"您单击了否按钮",Toast.LENGTH_SHORT).show();
                    }
                });
                alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "是", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(MainActivity.this,"您单击了是按钮",Toast.LENGTH_SHORT).show();
                    }
                });
                alertDialog.show();
            }
        });
        //显示带列表的对话框
        b2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //带四个列表项的列表对话框
                final String[] items = new String[]{"第一个列表项","第二个列表项","第三个列表项","第四个列表项"};
                //创建一个AlertDialog.Builder对象
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setIcon(R.drawable.img1);
                builder.setTitle("请做出选择?");
                builder.setItems(items, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(MainActivity.this,"您选择了"+items[i],Toast.LENGTH_SHORT).show();
                    }
                });
                builder.create().show();
            }
        });
        //显示带单选列表项的对话框
        b3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                final String[] items = new String[]{"第一个单选项","第二个单选项","第三个单选项","第四个单选项","第五个单选项"};
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setIcon(R.drawable.img1);
                builder.setTitle("请做出选择");
                builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(MainActivity.this,"您选择了"+items[i],Toast.LENGTH_SHORT).show();

                    }
                });
                builder.setPositiveButton("确定",null);
                builder.create().show();
            }

        });
        //显示带多选列表项的对话框
        b4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                final boolean[] checkedItems = new boolean[]{false,true,false,true,false};
                final String[] items = new String[]{"第一个多选列表项","第二个多选列表项","第三个多选列表项","第四个多选列表项","第五个多选列表项"};
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setIcon(R.drawable.img1);
                builder.setTitle("请做出选择");
                builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i, boolean b) {
                        checkedItems[i] = b;
                    }
                });
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        String result = "";
                        for(int i1=0;i1<checkedItems.length;i1++){
                            if(checkedItems[i1]){
                                result+=items[i1]+"、";
                            }
                        }
                        if (!"".equals(result)){
                            Toast.makeText(MainActivity.this,"您选择了"+result,Toast.LENGTH_SHORT).show();
                        }
                    }
                });
                builder.create().show();
            }
        });

    }
}

在这里插入图片描述

使用Notification显示通知

package com.example.pratice7;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {
    final int NOTIFYID=0X123;//通知ID
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //创建并发送通知
        //获取一个通知管理器
        NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        //创建一个通知对象
        Notification.Builder notification = new Notification.Builder(MainActivity.this);
        notification.setAutoCancel(true);//设置通知打开后自动消失
        notification.setSmallIcon(R.drawable.img1);
        notification.setContentTitle("这是一个标题");
        notification.setContentText("点击查看详情");//通知内容
        notification.setWhen(System.currentTimeMillis());//设置发送时间
        notification.setDefaults(Notification.DEFAULT_SOUND|Notification.DEFAULT_VIBRATE);//设置声音和振动
        //创建一个启动详细页面的Intent对象
        Intent intent = new Intent(MainActivity.this,DetailActivity.class);
        PendingIntent pi = PendingIntent.getActivity(MainActivity.this,0,intent,0);
        notification.setContentIntent(pi);//设置通知栏点击跳转
        notificationManager.notify(NOTIFYID,notification.build());//发送通知

    }
}

在这里插入图片描述

使用BroadcastReceiver(广播接收器)

使用AlarmManager设置闹钟

在这里插入图片描述
MainActivity中的代码

package com.example.pratice8;

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 android.widget.Toast;

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);
        timePicker.setIs24HourView(true);
        Button button1 = findViewById(R.id.set);
        //为设置闹钟按钮设置单击事件监听器
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //设置闹钟
                Intent intent = new Intent(MainActivity.this,AlarmActivity.class);
                //获取显示闹钟的pendingIntent对象
                PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this,0,intent,0);
                AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);//获取AlarmManager对象
                Calendar c = Calendar.getInstance();//获取日历对象
                c.set(Calendar.HOUR_OF_DAY,timePicker.getCurrentHour());//设置闹钟的小时数
                c.set(Calendar.MINUTE,timePicker.getCurrentMinute());//设置闹钟的分钟数
                c.set(Calendar.SECOND,0);
                alarm.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),pendingIntent);//设置一个闹钟
                Toast.makeText(MainActivity.this,"闹钟设置成功",Toast.LENGTH_SHORT).show();
            }
        });
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43328054/article/details/107757818