Kelas Toast Android menyediakan cara yang berguna untuk menunjukkan pengguna alert tapi masalahnya adalah bahwa peringatan ini tidak terus-menerus yang berarti peringatan berkedip pada layar selama beberapa detik dan kemudian menghilang.
Untuk melihat rincian pemberitahuan, Anda harus memilih icon yang akan menampilkan pemberitahuan laci memiliki rinci tentang pemberitahuan. Ketika bekerja dengan emulator dengan perangkat virtual, Anda harus klik dan tarik ke bawah status bar untuk memperluas itu yang akan memberikan Anda rincian sebagai berikut. Ini akan menjadi hanya 64 dp tinggi dan disebut tampilan normal.
Atas bentuk diperluas dapat memiliki Big View yang akan memiliki rincian tambahan tentang pemberitahuan. Anda dapat menambahkan upto enam baris tambahan dalam pemberitahuan. Berikut screenshot menunjukkan pemberitahuan tersebut.
Membuat dan Kirim Pemberitahuan
Anda memiliki cara sederhana untuk membuat pemberitahuan. Ikuti langkah-langkah berikut dalam aplikasi Anda untuk membuat pemberitahuan -
Langkah 1 - Buat Pemberitahuan Builder
Sebagai langkah pertama adalah membuat pemberitahuan pembangun menggunakan NotificationCompat.Builder.build (). Anda akan menggunakan Pemberitahuan Builder untuk mengatur berbagai properti Pemberitahuan seperti yang ikon kecil dan besar, judul, prioritas dll
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
Langkah 2 - Mengatur Pemberitahuan Properti
Setelah Anda memiliki objek Builder, Anda dapat mengatur properti Pemberitahuan dengan menggunakan objek Builder sesuai kebutuhan Anda. Tapi ini adalah wajib menetapkan setidaknya berikut -
Sebuah ikon kecil, yang ditetapkan oleh setSmallIcon ()
Sebuah judul, ditetapkan oleh setContentTitle ()
Teks detail, ditetapkan oleh setContentText ()
mBuilder.setSmallIcon(R.drawable.notification_icon); mBuilder.setContentTitle("Notification Alert, Click Me!"); mBuilder.setContentText("Hi, This is Android Notification Detail!");
Anda memiliki banyak sifat opsional yang dapat Anda mengatur untuk pemberitahuan Anda. Untuk mempelajari lebih banyak tentang mereka, lihat dokumentasi referensi untuk NotificationCompat.Builder.
Langkah 3 - Pasang Actions
Ini adalah bagian opsional dan diperlukan jika Anda ingin melampirkan suatu tindakan dengan pemberitahuan. Suatu tindakan memungkinkan pengguna untuk pergi langsung dari notifikasi untuk sebuah Kegiatan dalam aplikasi Anda, di mana mereka dapat melihat satu atau lebih kejadian atau melakukan pekerjaan lebih lanjut.
Aksi didefinisikan oleh PendingIntent mengandung maksud yang dimulai sebuah Kegiatan dalam aplikasi Anda. Mengasosiasikan PendingIntent dengan isyarat, memanggil metode yang tepat NotificationCompat.Builder. Sebagai contoh, jika Anda ingin memulai aktivitas ketika pengguna mengklik teks pemberitahuan di laci pemberitahuan, Anda menambahkan PendingIntent dengan memanggil setContentIntent ().
Sebuah objek PendingIntent membantu Anda untuk melakukan tindakan pada aplikasi nama Anda, sering di lain waktu, tanpa peduli apakah atau tidak aplikasi Anda berjalan.
Kami mengambil bantuan dari objek tumpukan builder yang akan berisi tumpukan kembali buatan untuk Kegiatan dimulai. Hal ini memastikan bahwa navigasi mundur dari Aktivitas mengarah keluar dari aplikasi Anda ke layar Home.
Intent resultIntent = new Intent(this, ResultActivity.class); TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); stackBuilder.addParentStack(ResultActivity.class); // Adds the Intent that starts the Activity to the top of the stack stackBuilder.addNextIntent(resultIntent); PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT); mBuilder.setContentIntent(resultPendingIntent);
Langkah 4 - Isu pemberitahuan
Akhirnya, Anda melewati objek Pemberitahuan ke sistem dengan memanggil NotificationManager.notify () untuk mengirim pemberitahuan Anda. Pastikan Anda memanggil metode NotificationCompat.Builder.build () pada objek builder sebelum memberitahukan hal itu. Metode ini menggabungkan semua pilihan yang telah ditetapkan dan mengembalikan objek Pemberitahuan baru.
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); // notificationID allows you to update the notification later on. mNotificationManager.notify(notificationID, mBuilder.build());
Kelas NotificationCompat.Builder memungkinkan kontrol lebih mudah atas semua bendera, serta membantu membangun layout pemberitahuan khas. Berikut ini adalah beberapa metode penting dan paling sering digunakan tersedia sebagai bagian dari kelas NotificationCompat.Builder.
1 Pemberitahuan membangun ()
Menggabungkan semua pilihan yang telah ditetapkan dan mengembalikan objek Pemberitahuan baru.
2 NotificationCompat.Builder setAutoCancel (boolean autoCancel)
Pengaturan bendera ini akan membuatnya begitu pemberitahuan secara otomatis dibatalkan ketika pengguna mengklik di panel.
3 NotificationCompat.Builder setContent (RemoteViews dilihat)
Menyediakan RemoteViews kustom untuk menggunakan bukan yang standar.
4 NotificationCompat.Builder setContentInfo (Info CharSequence)
Mengatur teks besar di sisi kanan pemberitahuan.
5 NotificationCompat.Builder setContentIntent (PendingIntent niat)
Menyediakan PendingIntent untuk mengirim pemberitahuan ketika diklik.
6 NotificationCompat.Builder setContentText (teks CharSequence)
Mengatur teks (baris kedua) pemberitahuan, dalam pemberitahuan standar.
7 NotificationCompat.Builder setContentTitle (judul CharSequence)
Mengatur teks (baris pertama) pemberitahuan, dalam pemberitahuan standar.
8 setDefaults NotificationCompat.Builder (int default)
Mengatur opsi pemberitahuan default yang akan digunakan.
9 NotificationCompat.Builder setLargeIcon (icon Bitmap)
Mengatur ikon besar yang ditampilkan dalam ticker dan pemberitahuan.
10 NotificationCompat.Builder setNumber (nomor int)
Mengatur jumlah besar di sisi kanan pemberitahuan.
11 NotificationCompat.Builder setOngoing (boolean yang sedang berlangsung)
Setel apakah ini merupakan pemberitahuan yang sedang berlangsung.
12 NotificationCompat.Builder setSmallIcon (int icon)
Mengatur ikon kecil untuk digunakan dalam layout pemberitahuan.
13 NotificationCompat.Builder setStyle (gaya NotificationCompat.Style)
Menambahkan gaya pemberitahuan kaya untuk diterapkan pada waktu membangun.
14 NotificationCompat.Builder setTicker (CharSequence tickerText)
Mengatur teks yang ditampilkan di status bar saat pemberitahuan pertama tiba.
15 NotificationCompat.Builder setVibrate (panjang [] pola)
Mengatur pola getaran untuk menggunakan.
16 NotificationCompat.Builder Seteljika (panjang ketika)
Mengatur waktu peristiwa itu terjadi. Pemberitahuan di panel diurutkan saat ini.
Contoh
Berikut contoh menunjukkan fungsi pemberitahuan Android menggunakan Kelas NotificationCompat.Builder yang telah diperkenalkan di Android 4.1.
Langkah Keterangan
1 Anda akan menggunakan Android studio IDE untuk membuat aplikasi Android dan nama itu sebagai tutorialspoint bawah com.example.notificationdemo paket. Sementara menciptakan proyek ini, pastikan Anda Targetkan SDK dan Kompilasi Dengan di versi terbaru dari Android SDK untuk menggunakan tingkat yang lebih tinggi dari API.
2 Modifikasi src / MainActivity.java berkas dan menambahkan kode untuk memberitahu (""), jika pengguna mengklik tombol, ia akan memanggil layanan pemberitahuan android.
3 Buat file Java src / NotificationView.java baru, yang akan digunakan untuk menampilkan layout baru sebagai bagian dari kegiatan baru yang akan dimulai ketika pengguna akan mengklik salah satu pemberitahuan
4 Ubah tata letak file XML res / layout / activity_main.xml menambahkan tombol Pemberitahuan di relatif tata letak.
5 Buat baru res file layout XML / tata letak / notification.xml. Ini akan digunakan sebagai file layout untuk aktivitas baru yang akan mulai ketika pengguna akan mengklik salah satu pemberitahuan.
6 Tidak perlu mengubah konstanta string default. Android studio mengurus string konstanta standar
7 Jalankan aplikasi untuk meluncurkan Android emulator dan memverifikasi hasil dari perubahan yang dilakukan dalam aplikasi.
Berikut ini adalah isi dari file utama kegiatan src / com.example.notificationdemo / MainActivity.java dimodifikasi. File ini dapat mencakup setiap siklus hidup mendasar methods.and mengembalikan objek Pemberitahuan baru.
package com.example.notificationdemo; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Intent; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; public class MainActivity extends ActionBarActivity { Button b1; @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"); } }); } private void Notify(String notificationTitle, String notificationMessage){ NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); @SuppressWarnings("deprecation") Notification notification = new Notification(R.drawable.abc,"New Message", System.currentTimeMillis()); Intent notificationIntent = new Intent(this,NotificationView.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,notificationIntent, 0); notification.setLatestEventInfo(MainActivity.this, notificationTitle,notificationMessage, pendingIntent); notificationManager.notify(9999, notification); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
Berikut akan menjadi isi dari res/layout/notification.xml file:
<?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>
Berikut ini adalah isi dari file kegiatan utama dimodifikasi src/com.example.notificationdemo/NotificationView.java.
package com.example.notificationdemo; import android.os.Bundle; import android.app.Activity; public class NotificationView extends Activity{ @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.notification); } }
Berikut akan menjadi isi dari res/layout/activity_main.xml file −
<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" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tutorials point " android:textColor="#ff87ff09" android:textSize="30dp" android:layout_below="@+id/textView1" android:layout_centerHorizontal="true" android:layout_marginTop="48dp" /> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageButton" android:src="@drawable/abc" android:layout_below="@+id/textView2" android:layout_centerHorizontal="true" android:layout_marginTop="42dp" /> <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>
Berikut akan menjadi oFollowing konten akan menjadi isi dari res / values / strings.xml untuk mendefinisikan dua konstanta baru -
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="action_settings">Settings</string> <string name="app_name">tutorialspoint </string> </resources>
Berikut ini adalah isi default AndroidManifest.xml -
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.notificationdemo" android:versionCode="1" android:versionName="1.0" > <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.notificationdemo.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=".NotificationView" android:label="Details of notification" android:parentActivityName=".MainActivity"> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity"/> </activity> </application> </manifest>
Mari kita coba untuk menjalankan aplikasi tutorialspoint Anda. Saya berasumsi bahwa Anda telah menciptakan AVD Anda saat melakukan lingkungan set-up. Untuk menjalankan APP dari Android Studio, buka salah satu file kegiatan proyek Anda dan klik Run Run Eclipse Icon icon dari toolbar. Android Studio menginstal aplikasi pada AVD Anda dan mulai itu dan jika semuanya baik-baik saja dengan setup dan aplikasi, maka akan muncul jendela berikut Emulator -
Sekarang klik tombol, Anda akan melihat di bagian atas pesan "Pesan Baru Waspada!" akan menampilkan sesaat dan setelah itu Anda akan memiliki layar berikut memiliki ikon kecil di sudut kiri atas.
Sekarang mari kita memperluas pandangan, panjang klik pada ikon kecil, setelah kedua itu akan menampilkan informasi tanggal dan ini adalah waktu ketika Anda harus menyeret status bar bawah tanpa melepaskan tikus. Anda akan melihat status bar akan memperluas dan Anda akan mendapatkan layar berikut -
Big View Pemberitahuan
Potongan kode berikut menunjukkan bagaimana untuk mengubah pemberitahuan dibuat dalam potongan sebelumnya menggunakan Inbox besar tampilan gaya. Aku akan memperbarui displayNotification () metode modifikasi untuk menunjukkan fungsi ini -
protected void displayNotification() { Log.i("Start", "notification"); /* Invoking the default notification service */ NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this); mBuilder.setContentTitle("New Message"); mBuilder.setContentText("You've received new message."); mBuilder.setTicker("New Message Alert!"); mBuilder.setSmallIcon(R.drawable.woman); /* Increase notification number every time a new notification arrives */ mBuilder.setNumber(++numMessages); /* Add Big View Specific Configuration */ NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle(); String[] events = new String[6]; events[0] = new String("This is first line...."); events[1] = new String("This is second line..."); events[2] = new String("This is third line..."); events[3] = new String("This is 4th line..."); events[4] = new String("This is 5th line..."); events[5] = new String("This is 6th line..."); // Sets a title for the Inbox style big view inboxStyle.setBigContentTitle("Big Title Details:"); // Moves events into the big view for (int i=0; i < events.length; i++) { inboxStyle.addLine(events[i]); } mBuilder.setStyle(inboxStyle); /* Creates an explicit intent for an Activity in your app */ Intent resultIntent = new Intent(this, NotificationView.class); TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); stackBuilder.addParentStack(NotificationView.class); /* Adds the Intent that starts the Activity to the top of the stack */ stackBuilder.addNextIntent(resultIntent); PendingIntent resultPendingIntent =stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT); mBuilder.setContentIntent(resultPendingIntent); mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); /* notificationID allows you to update the notification later on. */ mNotificationManager.notify(notificationID, mBuilder.build()); }
Sekarang jika Anda akan mencoba untuk menjalankan aplikasi Anda maka Anda akan menemukan berikut hasil dalam bentuk diperluas dari pandangan -
Gan kok (R.id.sendMail) dan (R.menu .main , menu )
ReplyDeletedi java masih error ya padahal sudah saya copy semua