Search what you want

Monday, February 22, 2016

[Android Studio] Created notification

mungkin banyak dari kita yang menggunakan aplikasi media sosial, chat, dan sebagainya. Aplikasi-aplikasi tersebut memiliki fasilitas untuk mengingatkan dan memberitahu pengguna tentang update-update terbaru dari berubahan dan informasi terbaru. nah pada tutorial kali ini saya akan membuat notifikasi sederhana yang mungkin nanti dapat di kombinasikan dengan push notification. tapi kali ini saya tikan akan membahas cara membuat push notification itu.

langsung saja, sekarang kita mulai:
1. Buat projek baru di android studio dengan struktur berikut

2. Tuliskan code pada layout/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="MainActivity">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Notification Example"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:textSize="30dp" />

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageButton"
        android:src="@drawable/ic_android_24dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="42dp"
        android:layout_below="@+id/textView1" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Notification"
        android:id="@+id/button"
        android:layout_marginTop="62dp"
        android:layout_below="@+id/imageButton"
        android:layout_centerHorizontal="true" />

</RelativeLayout>

2. Tuliskan code berikut pada MainActivity.java
package com.example.erdearik.notif;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    Button b1;
    int numMessages = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        b1=(Button)findViewById(R.id.button);
        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Notify("You've received new message", "message");
            }
        });
    }


    private void Notify(String notificationTitle, String notificationMessage){

        NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
        builder.setSmallIcon(R.drawable.ic_android_24dp);
        builder.setContentTitle(notificationTitle);//"Notifications Example")
        builder.setContentText(notificationMessage);//"This is a test notification");
        builder.setTicker("New Message Alert!");
        builder.setSmallIcon(R.drawable.ic_system_update_24dp);

        Intent notificationIntent = new Intent(this, NotificationView.class);
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,
                PendingIntent.FLAG_UPDATE_CURRENT);
        builder.setContentIntent(contentIntent);
        // Add as notification
        NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        manager.notify(1, builder.build());
    }

    // Remove notification
    private void removeNotification() {
        NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        manager.cancel(1);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        return super.onOptionsItemSelected(item);
    }
}
penjelajasan:
 b1=(Button)findViewById(R.id.button);
        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Notify("You've received new message", "message");
            }
        });
> Code diatas digunakan untuk memanggil button yang ada di activity_main.xml, dan memberikan aksi ketika button tersebut di klik.

NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
        builder.setSmallIcon(R.drawable.ic_android_24dp);
        builder.setContentTitle(notificationTitle);//"Notifications Example")
        builder.setContentText(notificationMessage);//"This is a test notification");
        builder.setTicker("New Message Alert!");
        builder.setSmallIcon(R.drawable.ic_system_update_24dp);
> Code diatas digunakan untuk membuat notifikasi.
    - setSmallerIcon -> digunakan untuk mengatur icon yang ada pada notif ketikan nanti muncul
    - setContentTitle -> digunakana untuk memunculkan jujul pada notifikasi
    - setContentText -> digunakan untuk menuliskan isi dari pesan yang akan ditampilkan

Intent notificationIntent = new Intent(this, NotificationView.class);
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,
                PendingIntent.FLAG_UPDATE_CURRENT);
        builder.setContentIntent(contentIntent);
> Code diatas digunakan ketika user meng-click notifikasi yang muncul, maka akan diarahkan ke halaman NotificationView.java

3. menambahkan Image ke drawable
    - klik kanan pada folder drawable di android studio. New -> Vector Asset. maka akan muncul window berikut

    - pilih icon yang akan dimasukan ke resources



    - klik Finish

4. Buat notification.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="400dp"
        android:text="Hi, Your Detailed notification view goes here...." />
</LinearLayout>
5. buat NotificationView.java
package com.example.erdearik.notif;

import android.app.Activity;
import android.os.Bundle;

/**
 * Created by erdearik on 2/22/16.
 */
public class NotificationView extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.notification);
    }
}

6. edit file AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.erdearik.notif">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".NotificationView"
            android:label="Details of notification"
            android:parentActivityName=".MainActivity">
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".MainActivity"/>
        </activity>
    </application>

</manifest>
7. Run Program






Untuk code lengkapnya dapat di download di sini
~~~~~~~https://github.com/ardhimaarik/notif~~~~~~~~



referensi:
http://www.tutorialspoint.com/android/android_sqlite_database.htm
http://stackoverflow.com/questions/6391870/how-exactly-to-use-notification-builder


No comments:

Post a Comment