Button Titel bei Klick ändern

  • 4 Antworten
  • Neuester Beitrag
Diskutiere Button Titel bei Klick ändern im Android App Entwicklung im Bereich Betriebssysteme & Apps.
lordzwieback

lordzwieback

Erfahrenes Mitglied
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
 
swa00

swa00

Moderator
Teammitglied
Hallo Lord ,

mach einfach in deinen Task bei OnPost/PreExecute einen runUIThread auf den Button
 
lordzwieback

lordzwieback

Erfahrenes Mitglied
Werde ich später mal testen, melde mich dann nochmal. Danke
 
markus.tullius

markus.tullius

Experte
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.
 
lordzwieback

lordzwieback

Erfahrenes Mitglied
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.