欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android安卓——消息提示

程序员文章站 2022-06-13 21:11:17
...

Android系统提供一套友好的消息提示机制,不会打断用户当前的操作。
在安卓应用中最常见的就是消息的提示,而消息的提示有多种方式,可根据实际的需要来选择使用。
本次介绍Toast提示框、Notification通知栏、AlertDialog提示框样式。

一、Toast提示框

1、适用情况

  • 一种快速的即时消息
  • 消息内容简短
  • 悬浮于应用程序的最上方
  • 不获得焦点
  • 显示时间有限,会自动消失

2、Toast对象

  • Toast类在android.widget包下
  • 用makeText()方法创建Toast对象(有三个参数)
  • show()方法显示
  • 一般用于某项操作执行后是否成功的消息提示

3、三种显示效果

1)默认效果
Toast.makeText(getApplicationContext(),"默认效果",Toast.LENGTH_SHORT).show();

2)自定义显示位置效果

Toast toast = Toast.makeText(getApplicationContext(),"自定义位置",Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER,0,0);//SENTER、LEFT、RIGHT。 0,0为偏移量。
toast.show();

3)带图片的显示效果

//使用getLayoutInflater方法加载布局文件
LayoutInflater inflater = getLayoutInflater();
//layout为View类型 使用自带的R.layout.layout_toast_cust布局样式
View layout = inflater.inflate(R.layout.layout_toast_cust,null);

ImageView image = (ImageView) layout.findViewById(R.id.imageToastCust);
image.setImageResource(R.drawable.a);
TextView text = (TextView) layout.findViewById(R.id.textViewToastCust);
text.setText("Hello! This is a custom toast!");

Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);//设置显示位置
toast.setDuration(Toast.LENGTH_LONG);//设置显示时间
toast.setView(layout);//设置布局文件xml
toast.show();

二、Notification通知栏

1、适用情况

  • 消息内容显示在手机的状态栏上
  • 按住状态栏往下拉可以查看系统的提示消息
  • 用户不需要马上处理的事件

2、包含的内容

  • Content title - -内容的标题
  • Large Icon –图标
  • Content Text–内容
  • time –发送时间

3、适用Notification过程

Notification在android.app包下,不用Activity

1)获取NotificationManager对象

管理Notification,用NotificationManager显示

NotificationManager notManager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
2)创建Notification.Builder对象
Notification.Builder notifBuilder = new Notification.Builder(this);
3)设置Builder的各个属性
notifBuilder.setSmallIcon(R.drawable.stat_sample)  // 设置图标
notifBuilder.setTicker(tickerText)  // the status text
notifBuilder.setWhen(System.currentTimeMillis())  // 当前时间
notifBuilder.setContentTitle(from)  // 通知标题
notifBuilder.setContentText(message)  // 通知内容
notifBuilder.setContentIntent(contentIntent);  

其中setContentInent链接定义如下:(详细可参照查看Intent通讯组件)

Intent in = new Intent(this,NotificationActivity.class);
PendingIntent pi = PendingIntent.getActivity(this,0,intent,0);
4)通过Builder的build方法获取Notification对象实例
Notification notification = notifBuilder.build();
5)使用NotificationManager对象的各种方法来执行
notManager.notify(1,notification);

NotificationManager常用的方法如下:
cancel:取消显示
cancelAll:取消所有的显示
getSystemService(NOTIFICATION——SERVICE):初始化Manager对象
notify(int id,Notification notification):把Notification持久地发送到状态条上

三、AltertDialog提示框