Toast與Notification的使用

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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章