1

My Android application using push notification and for every push there is snackbar message that shown in the bottom of the client screen, the problem is that I can see the snackbar in one activity and when the user navigate to another activity the snackbar disappear, there is a way for showing snackbar for all the activities of the application?

4

2 に答える 2

2

グローバル変数システムを使用してそれを行うことができます。次のように設定できます。

あなたのAndroidマニフェストで、アプリケーションタグの下に置きます

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

次に、Globals という名前の新しいクラスを作成し (または任意の名前を付けますが、上記のマニフェスト追加の最後の単語はそれに一致する必要があります)、アクティビティで使用するグローバル変数を次のような整数と文字列が必要な場合:

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;
}
}

スナックバーを作成するアクティビティ メソッドで、グローバル変数にアクセスするために最初にこのコードを挿入します。

Globals g = (Globals) getApplication();

次に、スナックバーが作成されたら、整数値を 1 に設定し、文字列値をスナックバーのテキストに次のように設定します。

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

ユーザーが切り替えることができる他のアクティビティで、 onCreate メソッドでグローバル変数を取得し、再度配置してスナックバーを再度作成します

Globals g = (Globals) getApplication();

onCreate メソッドの冒頭で、次のような変数にアクセスします。

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
}

それが役立つことを願っています

于 2016-06-13T16:57:28.600 に答える
2

ユーザーが別のアクティビティに移動すると、スナックバーが消える

スナックバーはビューに関連して表示されます。別のアクティビティに移動すると、スナックバーが関連していたビューが削除されるため、スナックバーも削除する必要があります。文脈のないものが必要な場合は、を使用してToastください。

于 2016-06-13T16:13:41.727 に答える