【问题标题】:Snackbar shown in one activity only in Android applicationSnackbar 仅在 Android 应用程序中的一项活动中显示
【发布时间】:2016-10-14 03:37:31
【问题描述】:

我的 Android 应用程序使用推送通知,每次推送都会在客户端屏幕底部显示小吃栏消息,问题是我可以在一个活动中看到小吃栏,当用户导航到另一个活动时,小吃栏消失,有没有办法为应用程序的所有活动显示snackbar?

【问题讨论】:

    标签: android android-activity snackbar


    【解决方案1】:

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

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

    【讨论】:

      【解决方案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
      }
      

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-30
        • 1970-01-01
        • 2018-04-17
        • 1970-01-01
        相关资源
        最近更新 更多