2016-06-13 6 views
1

Meine Android-Anwendung mit Push-Benachrichtigung und für jeden Push gibt es snackbar Nachricht, die unten auf dem Client-Bildschirm angezeigt wird, das Problem ist, dass ich die Snackbar in einer Aktivität und wann sehen kann der Benutzer navigiert zu einer anderen Aktivität die Snackbar verschwindet, gibt es eine Möglichkeit, Snackbar für alle Aktivitäten der Anwendung zu zeigen?Snackbar in einer Aktivität nur in Android-Anwendung

Antwort

2

, wenn der Benutzer die snackbar

verschwinden zu einer anderen Aktivität navigieren

Imbiss in Bezug auf Ansicht gezeigt ist. Wenn Sie zu einer anderen Aktivität gehen, wird die Ansicht, mit der die Snackbar verbunden ist, entfernt, sodass die Snackbar ebenfalls weg sein muss. Wenn Sie kontextlose Dinge benötigen, verwenden Sie Toast.

2

Sie ein globales Variable System verwenden könnten, das zu tun, Sie es so einrichten könnten:

in Ihrem Android-Manifest unter Anwendung Tag setzten

android:name="com.company.nameOfYourApp.Globals" 

nächsten eine neue Klasse erstellen Globals benannt (oder wie auch immer Sie es benennen möchten, aber das letzte Wort in der obigen Manifest-Addition muss übereinstimmen) und die globale Variable (n) eingeben, die Sie in Ihren Aktivitäten verwenden möchten. In Ihrem Fall möchten Sie eine ganze Zahl und eine Zeichenkette wie zum Beispiel:

package com.company.nameOfYourApp; 

import android.app.Application; 

public class Globals extends Application { 

public int activateSnackBar = 0; 
public int getData0() { 
    return activateSnackBar ; 
} 
public void setData0(int activateSnackBar) { 
    this.activateSnackBar = activateSnackBar ; 
} 

    public String snackBar= new String; 
    public String getData1() { 
    return snackBar; 
} 
public void setData1(String snackBar) { 
    this.snackBar = snackBar; 
} 
} 

jetzt in Ihre Aktivitäten Methode, die zuerst in diesem Code setzen Sie Ihre snackbar erstellt Ihre globale Variablen zugreifen:

Globals g = (Globals) getApplication(); 

dann, wenn Ihr snackbar stellen Sie Ihren snackbar der den ganzzahligen Wert 1 und der String-Wert erzeugt wird, was Text ist wie folgt:

g.setData0(1); 
g.setData1("snackbar text"); 

Jetzt in Ihrem anderen Aktivität der Benutzer in der onCreate Methode wechseln können die globalen Variablen erhalten und Ihre snackbar erstellen wieder wieder setzen

Globals g = (Globals) getApplication(); 

zu Beginn der onCreate Methode und den Zugriff auf die Variablen mit so etwas wie:

int showSnackbar = g.getData0(); 
String snackbarText = g.getData1(); 
if (showSnackbar == 1) { 
// create your snackbar and fill it with the snackbarText 
// then you can choose weather or not to reset the interger 
//variable so it wont keep showing up forever 
} 

Hoffnung, dass

hilft