Snackbar beenden

1

123thomas

Fortgeschrittenes Mitglied
44
Hallo,

ich habe eine App in der ich eine Snackbar erstelle mit dem Zusatz, dass diese immer bestehen beleibt (Snackbar.LENGTH_INDEFINITE). Nun wollte ich die Snackbar manuell beenden mit:


Code:
if(snack != null)
                {
                    snack.dismiss();
                    Log.d("snack","beenden");
                }

dies funktoniert nicht, da die Snackbar trotz, dass sie sichtbar ist den Status null hat.
Dann habe ich ein Testprojekt erstellt, damit ihr mein Problem versteht:
Code:
public class MainActivity extends AppCompatActivity {

    Button button;
    Snackbar snack;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        button = (Button)findViewById(R.id.button1);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.d("snack","Status snack: " + String.valueOf(snack));
                if(snack != null)
                {
                    snack.dismiss();
                    Log.d("snack","beenden");
                }

            }
        });

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.d("snack","erstellen");
                snack.make(view, "Replace with your own action", Snackbar.LENGTH_INDEFINITE)
                        .setAction("Action", null).show();
            }
        });
    }
}

In dem Projekt habe ich ein Floating Button, der beim klick eine Snackbar erstellt und dann soll sobald der Button betätigt wird die Snackbar beendet werden. Habt ihr da eine Lösung wie ich es lösen kann?

Gruß Thomas
 
Hallo Thomas,

das ist logisch , denn du weist "snack" ja auch keinen Pointer zu :

Ändere bitte dein make in :

snack = Snackbar.make(coordinatorLayout, "Welcome to AndroidHive", Snackbar.LENGTH_LONG);
snack.show();


dann kannst du auch "snack" später verwenden

P.S. Den "Status" null gibt es nicht, das ist ein Pointer


Guten Rutsch !!
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: 123thomas
Danke!

Manchmal sieht man den Wald vor lauter Bäumen nicht mehr. Stimmt ich meinte den Pointer :-D

Ebenfalls guten Rutsch!!
 
Off-Topic: Der Titel des Threads hier ist Klasse :D

Guten Rutsch
 
Was so ein Buchstabe ausmachen kann. :-D
 

Ähnliche Themen

Hansimglueck0815
Antworten
0
Aufrufe
734
Hansimglueck0815
Hansimglueck0815
M
  • maksimilian
Antworten
15
Aufrufe
1.701
maksimilian
M
J
Antworten
4
Aufrufe
1.070
JoEntwickler
J
Zurück
Oben Unten