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

当用户导航到另一个活动时,小吃栏消失

Snackbar 相对于视图显示。转到另一个活动会删除与小吃店相关的视图,因此小吃店也必须消失。如果您需要无上下文的东西,请使用Toast.

于 2016-06-13T16:13:41.727 回答
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 回答