我的Android应用程序使用推送通知,并且每次推送都会在客户端屏幕的底部显示小吃栏消息,问题是我可以在一个活动中看到小吃栏,当用户导航到另一个活动时,小吃店消失,有一种方法可以显示应用程序的所有活动的零食吧吗?
答案 0 :(得分:2)
当用户导航到另一个活动时,小吃店消失
Snackbar与视图有关。去另一个活动删除视图snackbar与之相关,所以snackbar也必须消失。如果您需要无上下文的内容,请使用Toast
。
答案 1 :(得分:2)
您可以使用全局变量系统来执行此操作,您可以将其设置为:
在应用程序标记put
下的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
}
希望有所帮助