300x250 AD TOP

Blogger news

AD (728x90)

Tecnologia do Blogger.

Colaboradores

Seguidores

Postagens populares

Tagged under:

Como colocar uma notificação na barra de status - Status Bar Notifications


Notificações
Status Bar Notifications, são aquelas conhecidas barras de status muito usados no WhatApp, Line entre outros. Como em todos os casos que desejamos implementar uma notificação para nossa App, neste também utilizaremos a classe NotificationsManager para enviar as notificações o sistema. Para construir a notificação, é utilizado o Notification.Builder() que possui diferentes métodos  que customizam o conteúdo  e a aparência da notificação.

Application Name: Notificação
Package Name: Notificação
Package Name: br.com.ck.notificacao
Activity Name: MainActivity
Layout Name: main

Na pasta res/layouts altere o arquivo chamado main.xml. Ele deve ficar com o seguinte conteúdo:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/btn_criar_notificacao"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/criar_notificacao" />
</LinearLayout>


O arquivo res/values/strings.xml deve ficar com o seguinte conteúdo:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Notificacao</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string name="criar_notificacao">Criar Notificação</string>
    <string name="title_activity_notificacao">NotificacaoActivity</string>
    <string name="notificao">Esta tela foi aberta a partir da notificação</string>

</resources>



Na pasta res/layouts crie um arquivo chamado activity_notificacao.xml. Ele deve conter o seguinte conteúdo:

<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=".NotificacaoActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="176dp"
        android:text="@string/notificao" />
  
</RelativeLayout>


Crie um arquivo chamado NotificacaoActivity.java com o seguinte conteúdo:


package br.com.ck.notificacao;

import android.app.Activity ;
import android.app.Notification ;
import android.app.NotificationManager ;
import android.app.PendingIntent ;
import android.content.Intent ;
import android.os.Bundle ;
import android.view.View ;
import android.widget.Button ;

public class MainActivity extends Activity {

       @Override
       protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.main);
             Button criarNotificacao = (Button) findViewById(R.id.btn_criar_notificacao);
             criarNotificacao.setOnClickListener(new View.OnClickListener() {
                   
                    @Override
                    public void onClick(View arg0) {
                                  Intent intent = new Intent(MainActivity.this, NotificacaoActivity.class);
                                  PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
                                 
                                  Notification notification =  new Notification.Builder(MainActivity.this)
                                               .setContentTitle("Titulo da notificacao")
                                               .setContentText("Texto da notificação")
                                               .setSmallIcon(R.drawable.ic_launcher)
                                               .setContentIntent(pendingIntent).getNotification();
                                 
                                  notification.flags |= Notification.FLAG_AUTO_CANCEL ;
                                 
                                  NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
                                  notificationManager.notify(0, notification);
                          
                    }
             });
       }

}

      






0 comentários:

Postar um comentário