Notification

การแจ้งเตือน

มีปุ่ม 3 ปุ่ม

  • ปุ่มที่ 1 จะเป็นการแจ้งเตือน
  • ปุ่มที่ 2 จะเป็นการอัพเดทข้อความแจ้งเตือน
  • ปุ่มที่ 3 จะเป็นการยกเลิกการแจ้งเตือน
    • เมื่อผู้ใช้เลือกการแจ้งเตือน จะมีการเรียกหน้า Activity ที่เราเตรียมไว้ให้แสดงขึ้นมา

      activity_main.xml

      <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:id="@+id/activity_main"
          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.phaisarn.jackapplication.MainActivity">
      
          <Button
              android:id="@+id/notify_button"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="Notify" />
      
          <Button
              android:id="@+id/update_button"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="Update" />
      
          <Button
              android:id="@+id/cancel_button"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="Cancel" />
      </LinearLayout>
      

      MainActivity.java

      package com.phaisarn.jackapplication;
      
      import android.app.Notification;
      import android.app.NotificationManager;
      import android.app.PendingIntent;
      import android.content.Intent;
      import android.graphics.Bitmap;
      import android.graphics.BitmapFactory;
      import android.support.v4.app.NotificationCompat;
      import android.support.v7.app.AppCompatActivity;
      import android.os.Bundle;
      import android.view.View;
      
      public class MainActivity extends AppCompatActivity {
      
          private final int NOTIFY_ID = 0;
          private NotificationCompat.Builder mNotifyBuilder;
          private NotificationManager mNotifyManager;
      
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
      
              (findViewById(R.id.notify_button)).setOnClickListener(new View.OnClickListener() {
                  @Override
                  public void onClick(View view) {
                      Intent intent = new Intent(MainActivity.this, NotificationActivity.class);
      
                      PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
      
                      Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.me);
      
                      mNotifyBuilder = new NotificationCompat.Builder(MainActivity.this)
                              .setTicker("New Alert")
                              .setSmallIcon(R.drawable.me)
                              .setLargeIcon(largeIcon)
                              .setContentTitle("You have got new alert")
                              .setContentText("You have got a good news.")
                              .setContentIntent(pendingIntent)
                              .setAutoCancel(true);
      
                      mNotifyBuilder.build();
      
                      mNotifyManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
      
                      mNotifyManager.notify(NOTIFY_ID, mNotifyBuilder.build());
                  }
              });
      
              (findViewById(R.id.update_button)).setOnClickListener(new View.OnClickListener() {
                  @Override
                  public void onClick(View v) {
                      mNotifyBuilder.setContentText("This is an update text.");
      
                      Notification notification = mNotifyBuilder.build();
      
                      mNotifyManager.notify(NOTIFY_ID, notification);
                  }
              });
      
              (findViewById(R.id.cancel_button)).setOnClickListener(new View.OnClickListener() {
                  @Override
                  public void onClick(View v) {
                      mNotifyManager.cancel(NOTIFY_ID);
                  }
              });
          }
      }
      

      activity_notification.xml

      <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:id="@+id/activity_notification"
          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.phaisarn.jackapplication.NotificationActivity">
      
          <TextView
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="This is your notification" />
      </LinearLayout>
      

      NotificationActivity.java

      package com.phaisarn.jackapplication;
      
      import android.support.v7.app.AppCompatActivity;
      import android.os.Bundle;
      
      public class NotificationActivity extends AppCompatActivity {
      
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_notification);
          }
      }