簡體   English   中英

小吃欄僅在Android應用程序中顯示在一個活動中

[英]Snackbar shown in one activity only in Android application

我的Android應用程序使用推送通知,並且每次推送都會在客戶端屏幕底部顯示小吃欄消息,問題是我可以在一個活動中看到小吃欄,而當用戶導航到另一活動時,小吃欄消失了,顯示應用程序所有活動的小吃店的方法?

當用戶導航到另一個活動時,小吃欄消失

小吃欄顯示為與視圖相關。 進行另一項活動將刪除快餐欄與之相關的視圖,因此快餐欄也必須消失。 如果您需要上下文無關的東西,請使用Toast

您可以使用全局變量系統來做到這一點,可以這樣設置:

在您的Android清單中的application標記下

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,將String值設置為快餐欄的文本,如下所示:

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
}

希望能有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM