In diesem Kapitel befassen wir uns mit Popup-Benachrichtigungen mittels der Klasse Toast und Benachrichtigungen in der Statusleiste.

Android Toast Benachrichtigung

Android Toast Benachrichtigung

Mit der Klasse Toast kann der Benutzer über einen kurz angezeigten Text von Ereignissen benachrichtigt werden. Die Ausgabe erscheint ähnlich wie im Screenshot rechts:

 

Hier nun ein Beispiel zum Erzeugen und Anzeigen von Benutzerbenachrichtigungen mittels der Klasse Toast:

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.button1);
        button.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                Toast toast = Toast.makeText(MainActivity.this, "Hallo Welt, ich bin ein Toast", Toast.LENGTH_LONG);
                toast.setGravity(Gravity.CENTER, 0, 0);
                toast.show();
            }
        });
    }
}

Wird auf die Schaltfläche gedrückt, passiert folgendes:

  • toast.makeText() erzeugt einen Standard-Toast zur Anzeige von Text. Im ersten Parameter wird der Context in Form von MainActivity.this übergeben, der zweite Parameter enthältet die anzuzeigende Nachricht. Im dritten Parameter wird angegeben, wie lange der Toast angezeigt wird.
  • toast.setGravity() legt die Anzeigeposition fest. Dieser Aufruf ist optional.
  • toast.show() zeigt die Nachricht an.

Android Notification Beispiel: Eine Benachrichtigung in der Statusleiste.

Android Notification: Benachrichtigung in der Statusleiste

In der folgenden Android Beispiel-App wird eine Benachrichtigung in der Statusleiste angezeigt und ein neues Activity gestartet, wenn der Benutzer die Nachricht anklickt. Das Ganze sieht dann wie im Screenshot rechts aus:

 
  1. Wir starten mit dem Erstellen einer neuen Android App mit dem Namen StatusbarNotification und einem Activity vom Typ Empty Activity.
  2. Anschliessend wird dem Android Projekt ein neues Activity, ebenfalls vom Typ Empty Activity, mit dem Namen Activity2 hinzugefügt.
  3. Nun dem Layout von MainActivity einen Button hinzufügen und den OnClickListener des Buttons wie im foglenden Beispiel implementieren:
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Button button = (Button) findViewById(R.id.button1);
        button.setOnClickListener(new OnClickListener() {
        
            @Override
            public void onClick(View v) {
                
                Bitmap icon = BitmapFactory.decodeResource(MainActivity.this.getResources(), R.drawable.ic_launcher);
                
                int notificationId = 001;
                Intent viewIntent = new Intent(MainActivity.this, Activity2.class);
                PendingIntent viewPendingIntent = PendingIntent.getActivity(MainActivity.this, 0, viewIntent, 0);
    
                
                Notification.Builder nBuilder =
                        new Notification.Builder(MainActivity.this)
                        .setSmallIcon(android.R.drawable.stat_notify_more)
                        .setLargeIcon(icon)
                        .setContentTitle("Titel der Benachrichtigung")
                        .setContentText("Hello World - Text der Benachrichtigung")
                        .setContentIntent(viewPendingIntent);
    
    
                NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                notificationManager.notify(notificationId, nBuilder.getNotification());
                }
            });
        }        
    

Hier passiert folgendes:

  • Wenn der Benutzer die Schaltfläche berührt, wird die Methode onClick() aufgerufen.
  • In Zeile 12 wird das Icon der App, das neben der Benachrichtigung angezeigt wird, geladen.
  • Die beiden Zeilen 15 und 16 erzeugen einen Intent zum Starten von Activity2, der aufgerufen wird, sobald der Benutzer die Nachricht in der Statuszeile berührt.
  • Im den Zeilen 19 bis 25 werden die verschiedenen Parameter der Benachrichtigung gesetzt
  • Zum Schluss wird die Benachrichtigung über den NotificationManager in den Zeilen 28 und 29 erstellt.