# Ladebalken erscheint zu spät



## Dominik0806 (22. Jun 2020)

Hi.
Ich habe eine kleine Android app Programmiert, bei der es vorkommen kann, dass eine for-Schleife länger läuft (10 sec). Daher wollte ich eine kleine Lade-Animation hinzufügen, die jedes mal erscheint, wenn der User auf den Berechnebutton tippt. Das Problem ist, dass die Animation erst erscheint, nachdem die Berechnung ausgeführt wurde. (Also das Programm berechnet und erst wenn das Ergebnis erscheint würde die Animation angezeigt werden.) Uns das soll sie logischerweise nicht!

Der Code in der Mitte ist noch lange nicht perfekt und ich bin da noch dran. Mir geht es nur darum, wie ich dafür sorge, dass die Animation nicht erst nach den Berechnungen angezeigt wird.


```
public void onClick(View view) {

    
            //Hier soll die Animation sichtbar gemacht werden!
                loading.setVisibility(View.GONE);

                long tStart = new Date().getTime();

                BigInteger zahl = new BigInteger(String.valueOf(etnPrimzahl.getText()));
                boolean ergebnis;

                if (zahl == new BigInteger("1")) {
                    tvPrimzahlErgebnis.setText("Die Zahl 2 ist eine Primzahl!");

                } else if (zahl.compareTo(new BigInteger("1")) == 1) {
                    
                    //Diese Funktion führt zu der for-Schleife
                    ergebnis = primzahlPruefen(zahl);
                    
                    if (ergebnis) {
                        tvPrimzahlErgebnis.setText("Die Zahl " + zahl + " ist eine Primzahl!");
                    } else {
                        tvPrimzahlErgebnis.setText("Die Zahl " + zahl + " ist keine Primzahl");
                    }
                } else {
                    tvPrimzahlErgebnis.setText("Die Zahl " + zahl + " ist keine Primzahl!");
                }

                long dauer = new Date().getTime() - tStart;
                tvTime.setText("" + dauer);
    
                //Und hier soll die Animation wieder verschwinden.           
                loading.setVisibility(View.VISIBLE);

            }
```


----------



## kneitzel (22. Jun 2020)

Das ist unter Android so wie unter allen UIs:
Tätigkeit im Hintergrund ausführen, damit Du sozusagen den UI Thrad / Main Thread für die UI aktiv lässt.

https://draeger-it.blog/android-progressdialog-fuer-lange-operationen/?cn-reloaded=1 zeigt ProgessDialog und AsyncTask oder Thread.


----------



## Dominik0806 (22. Jun 2020)

Ich habs jetzt über mehrere Runables gelöst bekommen.


----------

