Toast
- 概念
在系统中,通过对话框可以对用户的某些操作进行提示,在Android平台中还提供了另外一套更加友好的界面效果,而这种界面在提示用户时不会打断用户的正常操作,这种对话框可以通过Toast组件实现。
- 创建Toast对象
public static Toast makeText(Context context, CharSequence text,int duration);
简单Toast使用
//创建toast对象
Toast toast = Toast.makeText(this,已保存,Toast.LENGTH_SHORT);
//显示toast
toast.show();
- 自定义 Toast 使用
Toast toast= Toast.makeText(this,”已保存”,Toast.LENGTH_SHORT);
View view=LayoutInflater.from(this).inflate(R.layout.my_toast,null);
Toast.setView(view);
Toast.setGravity(Gravity.BOTTOM,0,0);
toast.show();
Notification
Notification 是显示在手机状态栏的消息(手机状态栏位于手机最顶端),代表一种全局的通知。
- 通知栏内容
图标
标题
内容
时间
点击后响应
- 如何实现通知栏
获取NotificationManger
显示通知栏 notify(id,notification)
取消通知栏:cancle(id);
构造Notification并设置显示内容
- 代码:
MainActivity.java
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Notification;
import android.app.PendingIntent;
import android.app.Notification.Builder;
import android.app.NotificationManager;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
@SuppressLint("NewApi")
public class MainActivity extends Activity implements OnClickListener {
Button btn1,btn2;
NotificationManager notiManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1=(Button) findViewById(R.id.btn1);
btn2=(Button) findViewById(R.id.btn2);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
//得到服务
notiManager=(NotificationManager)
this.getSystemService(Context.NOTIFICATION_SERVICE);
}
@Override
public void onClick(View v) {
if(v.getId()==R.id.btn1){
Builder builder=new Notification.Builder(this);
//设置图标
builder.setSmallIcon(R.drawable.ic_launcher);
//设置状态来提示
builder.setTicker("紧急通知!");
//设置主题
builder.setContentTitle("通知栏");
//设置通知内容
builder.setContentText("我是来自远方的孤独的狼");
//设置显示时间
builder.setWhen(System.currentTimeMillis());
//预制意图(预设好,等到某个时间点,再去执行该意图)
PendingIntent pendingintent=PendingIntent.getActivity(this, 0, new Intent(this,MainActivity.class),0);
//点击通知时,执行意图(启动MainAcitviyt)
builder.setContentIntent(pendingintent);
// //设置点击后取消通知
builder.setAutoCancel(true);
//取出通知对象
Notification notification =builder.build();//4.1以上
//Notification notification=builder.getNotification();//4.1之前
//将notification添加到管理中
notiManager.notify(1, notification);
}else if(v.getId()==R.id.btn2){
notiManager.cancel(1);
}
}
}
Activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.android_830_notification.MainActivity" >
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="112dp"
android:text="发送" />
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/btn1"
android:layout_below="@+id/btn1"
android:layout_marginTop="47dp"
android:text="取消" />
</RelativeLayout>