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持久地发送到状态条上