Custom Notifikasi untuk Android

Custom Notifikasi untuk Android
Pemberitahuan Android memberikan informasi singkat dan tepat waktu tentang tindakan yang terjadi di aplikasi, bahkan saat tidak berjalan sekalipun. Pemberitahuan menampilkan ikon, judul, dan beberapa jumlah teks konten. Properti pemberitahuan Android diatur menggunakan objek NotificationCompat.Builder dan masih banyak lagi seperti di bawah ini:

  • setContentTitle() ini digunakan untuk mengatur judul pemberitahuan.
  • setContentText() ini digunakan untuk mengatur pesan teks.
  • setSmallIcon() Ini digunakan untuk ikon pemberitahuan.
  • setAutoCancel() untuk mengatur pemberitahuan agar dapat dibatalkan secara otomatis.
  • setPriority() Ini untuk memprioritaskan pemberitahuan.

Dalam contoh ini, kita akan membuat pesan pemberitahuan yang akan meluncurkan aktivitas lain setelah mengkliknya.
Tambahkan kode xml berikut kedalam berkas /res/layout/main_activity.xml:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context="example.android.com.androidnotification.MainActivity"
 android:orientation="vertical"
 android:gravity="center">
<TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="ANDROID NOTIFICATION"
 android:gravity="center"
 android:layout_marginBottom="10dp"
 android:textSize="22sp"
 android:textColor="#FF000000"
 android:textStyle="bold"/>
<Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/button"
 android:text="Notify"
 android:layout_marginTop="10dp"/>
</LinearLayout>

Membuat xml file baru dan menambahkan kode berikut kedalam layout. ini adalah kustom view yang akan diluncurkan ketika tombol pada activity pertama di klik. TextView digunakan untuk menampilkan judul dan pesan pemberitahuan.
File : activity_notifikasi_view.xml


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:id="@+id/layout"
	android:layout_width="fill_parent"
	android:layout_height="64dp"
	android:orientation="horizontal"
	android:paddingLeft="10dp"
	android:gravity="center_vertical">
<ImageView
	android:src="@drawable/ic_launcher"
	android:id="@+id/image"
	android:layout_width="46dp"
	android:layout_height="46dp"
	android:layout_centerVertical="true"/>
<LinearLayout
	android:layout_width="match_parent"
	android:layout_height="match_parent"
	android:layout_toRightOf="@+id/image"
	android:gravity="center_vertical"
	android:orientation="vertical"
	android:paddingLeft="10dp">
<TextView
	android:textSize="13dp"
	android:textColor="#000"
	android:text="Testing"
	android:id="@+id/textView1"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:layout_toRightOf="@id/image"
	android:textStyle="bold"/>
<TextView
	android:textSize="13dp"
	android:textColor="#000"
	android:id="@+id/textView2"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:layout_below="@id/textView2"/>
</LinearLayout>
</RelativeLayout>


Pada kelas MainActivity tambahkan kode berikut. Di sini, di mana kita terapkan objek NotificationCompat.Builder untuk mengatur properti pemberitahuan. Sedangkan Intent digunakan untuk memanggil aktivitas lain pada saat pemberitahuan diluncurkan.
File : MainActivity.java


package com.my.apps;
 
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import android.widget.RemoteViews;
import android.app.Notification;
import android.app.NotificationManager;
import android.support.v4.app.NotificationCompat;
import android.content.Intent;
import android.app.PendingIntent;

public class MainActivity extends Activity { 
     
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
		Button button = (Button) findViewById(R.id.button);
		button.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				notifikasi_contoh(); 
			}
		});
	}
	
	private void notifikasi_contoh() {
		NotificationCompat.Builder builder =  
			new NotificationCompat.Builder(this)
			.setSmallIcon(R.drawable.ic_launcher) //set icon untuk notifikasi
			.setContentTitle("Judul") //set judul notifikasi
			.setContentText("Ini contoh pesan notifikasi...")//ini pesan untuk notifikasi
			.setAutoCancel(true) //auto cancel untuk notifikasi
			.setPriority(NotificationCompat.PRIORITY_DEFAULT); //set prioritas untuk notifikasi


        Intent notificationIntent = new Intent(this, NotifikasiView.class);  
        notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);  
        //pesan notifikasi akan menggunakan NotifikasiView  
        notificationIntent.putExtra("pesan", "Ini contoh pesan notifikasi...");  
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent,  
		PendingIntent.FLAG_UPDATE_CURRENT);  
        builder.setContentIntent(pendingIntent);  
        //tambahkan sebagai notifikasi
        NotificationManager manager = (NotificationManager) getSystemService(MainActivity.NOTIFICATION_SERVICE);  
        manager.notify(0, builder.build());  
		
	}
	
} 

Terakhir buat java kelas untuk menerima pesan pemberitahuan. Kelas ini dipanggil saat pemberitahuan diluncurkan.
File : NotifikasiView.java


package com.my.apps;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class NotifikasiView extends Activity {
    TextView texks1, texks2;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_notifikasi_view);  
        texks1 = findViewById(R.id.textView1);
		texks2 = findViewById(R.id.textView2);
        //Mengambil pesan notifikasi
        String message1=getIntent().getStringExtra("judul");  
        texks1.setText(message1);
		String message2=getIntent().getStringExtra("pesan");  
        texks2.setText(message2);
    }  
}

Tambahkan kode berikut kedalam file AndroidManifest.xml.


<?xml version='1.0' encoding='utf-8'?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.my.apps">
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
       android:largeHeap="true"
		android:name=".Applications"
        android:resizeableActivity="true">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
		<activity android:name=".NotifikasiView"  
            android:label="@string/notifikasi_activity"  
            android:parentActivityName=".MainActivity">  
            <meta-data  
                android:name="android.support.PARENT_ACTIVITY"  
                android:value=".MainActivity"/>  
        </activity>
        <activity
	       android:name=".DebugActivity"
       	   android:screenOrientation="portrait"/>
        <meta-data
          android:name="android.max_aspect"
          android:value="4.0"/>
    </application>
</manifest>

File: String.xml


<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">Happy Coding</string>
	<string name="notifikasi_activity">NotifikasiView</string>
</resources>

Hasilnya akan seperti ini:

Baca Juga
Posting Komentar (0)
Lebih baru Lebih lama