Button Titel bei Klick ändern

lordzwieback

lordzwieback

Erfahrenes Mitglied
210
Hallo,

ich habe einen Button, welcher sich beim Klick auf einen Server verbindet und Daten von Smartphone hochlädt oder vom Server herunterlädt. Das funktioniert auch alles ganz super.

Jetzt wollte ich, während die Verbindung aufgebaut und die Daten hin- und hergeschoben werden den Titel des Buttons in "Bitte warten ... " ändern und wenn der Vorgang fertig ist wieder auf "Synchronisieren ...". Nur leider tut er das aus irgendeinem Grund nicht. Ich habe das Ganze dann nochmal mit einer leeren Activity mit einem Button drauf getestet. Da hat es funktioniert..

Hier mal mein Code (vereinfacht/gekürzt):
Code:
ftpSync.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Boolean upload = false, download = false;
                ergebnis.setText("");
                ftpSync.setText("Bitte warten ...");

                // VERBINDUNG HERSTELLEN UND LADEN VON DATEN
              
                ftpSync.setText("Synchronisieren ...");
            }
        });

Im OnCreate wird der Standardwert (ebenfalls mit .setText("sync_mir_das_jetzt")) am Anfang gesetzt.
Ich habe den Wert auch mal aus der Content Datei und aus der Strings Datei herausgenommen, weil ich dachte, dadurch wird er vllt immer wieder auf den vermerkten Wert zurückgesetzt.

Hat jemand eine Idee?

Grüße,
lordzwieback
 
Hallo Lord ,

mach einfach in deinen Task bei OnPost/PreExecute einen runUIThread auf den Button
 
  • Danke
Reaktionen: lordzwieback
Werde ich später mal testen, melde mich dann nochmal. Danke
 
Am besten benutzt man ein AsyncTask, der in der Methode onClick() aufgerufen wird.

Im AsyncTask gibt es die Methode onPostExecute(Result result), diese wird ausgeführt, wenn der AsyncTask beendet wird. Dort kann danm der Text gesetzt (ftpSync.setText("Synchronisieren ..."); ) werden.
 
  • Danke
Reaktionen: lordzwieback
markus.tullius schrieb:
Am besten benutzt man ein AsyncTask, der in der Methode onClick() aufgerufen wird.

Im AsyncTask gibt es die Methode onPostExecute(Result result), diese wird ausgeführt, wenn der AsyncTask beendet wird. Dort kann danm der Text gesetzt (ftpSync.setText("Synchronisieren ..."); ) werden.
Die OnPostExecute habe ich schon drinnen gehabt. Manchmal ist es zu einfach. Danke euch, hat funktioniert.
 

Ähnliche Themen

A
  • AnimaAngelo85
Antworten
1
Aufrufe
337
swa00
swa00
MES
Antworten
10
Aufrufe
819
MES
MES
C
Antworten
8
Aufrufe
1.126
swa00
swa00
Zurück
Oben Unten