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>