auf Button klicken hochzählen, Zahöanformat soll mit 00 anfangen und mit 01 fortgehen

  • 13 Antworten
  • Neuester Beitrag
Diskutiere auf Button klicken hochzählen, Zahöanformat soll mit 00 anfangen und mit 01 fortgehen im Android App Entwicklung im Bereich Betriebssysteme & Apps.
A

androci

Neues Mitglied
Hallo,
ich möchte mit einem Button einen Zähler hoch zählen. Jeder Klick soll die Zahl um 1 erhöhen. Allerdings soll das Zahlenformat mit 00 beginnen und mit 01,02,03,...etc. weiter gehen...bis 99 eben. Wie bekommen ich nun die vordere Null in meinen Zähler?
Bein bisheriger Code dazu:

Code:
final TextView textZyklen = (TextView) findViewById(R.id.zyklen_dauer_TextView);
        final Button button_plusZyklen = (Button) findViewById(R.id.zyklen_plus_Button);
  
//Zyklen
        button_plusZyklen.setOnClickListener(new View.OnClickListener(){
        //Event handler onClick()
        @Override
        public void onClick(View v){
                    
            button_plusZyklen.startAnimation(dieAnimation);
        
            geklicktZyklen++;
            textZyklen.setText( ""+geklicktZyklen);
        }
                
        });
 
T

toomuchcoffeeman

Ambitioniertes Mitglied
Bin noch neu in Android, aber ich würde die führenden Nullen per Hand einfügen, denn ich kenne kein Zahlenformat, das führende Nullen implementiert.
Vielleicht verbessert mich ja noch wer.

Code:
if (zahl<10) {
  textZyklen.setText("0"+geklicktZyklen);
} else {
  textZyklen.setText(geklicktZyklen);
}
 
A

androci

Neues Mitglied
Hi,
dein Lösungsvorschlag funktioniert bis 09 wunderbar, allerdings ab 10 sieht das Zahlenformat so aus: "010" ...woran kann das liegen? hab etwas rumprobiert, aber bin nicht auf die Lösung gekommen.

mein Code sieht momentan so aus:

Code:
final TextView textZyklen = (TextView) findViewById(R.id.zyklen_dauer_TextView);
        final Button button_plusZyklen = (Button) findViewById(R.id.zyklen_plus_Button);

    //Zyklen
        button_plusZyklen.setOnClickListener(new View.OnClickListener(){
        //Event handler onClick()
        @Override
        public void onClick(View v){
                    
            button_plusZyklen.startAnimation(dieAnimation);
            
            int zahl = 0;
            geklicktZyklen++;
            //textZyklen.setText( ""+geklicktZyklen);
            if (zahl<10) {
                  textZyklen.setText("0"+geklicktZyklen);
                } else {
                  textZyklen.setText(geklicktZyklen);
                }
        }
                
        });
 
S

swordi

Enthusiast
du sagst

zahl = 0

und 2 zeilen später fragst:

if zahl < 10


da passt was net
 
T

toomuchcoffeeman

Ambitioniertes Mitglied
Ja, Du machst da nen logischen Fehler. Versuch bitte selbst mal drauf zu kommen. Zur Not musst Du halt mit dem Debugger durchsteppen... das sollte man sich sowieso angewöhnen, wenn irgendwo ein unerwartetes Verhalten auftritt...
 
A

androci

Neues Mitglied
@swordi
wenn ich nicht "zahl = 0" mache, dann bekomme ich den Fehler, dass ich zahl nicht initialisiert habe.
Also ich mach und tu, aber komme einfach nicht drauf :huh:
 
T

toomuchcoffeeman

Ambitioniertes Mitglied
Die Zahl mit 0 zu initialisieren ist auch korrekt. Und auch die Stelle. Aber verändert sich der Wert auch so, wie Du es erwartest?
 
A

androci

Neues Mitglied
wie gesagt, es läuft von 00 bis 09 wunderbar... oder was meinst du mit:
verändert sich der Wert auch so, wie Du es erwartest?
 
T

toomuchcoffeeman

Ambitioniertes Mitglied
Mal ganz ehrlich. Ein bsschen Mühe kannst Du Dir schon geben. :-/

Geh doch mal logisch durch Deinen Code durch. Da ist ein Logikfehler drin. Irgendwo fragst Du was ab und irgendwo änderst Du was. Schau Dir das an.

Du willst was erhöhen und machst es nicht, bzw. erhöhst das Falsche.
 
A

androci

Neues Mitglied
ok, hab jetzt zahl durch geklicktZyklen ersetzt :blushing: allerdings stürzt die App ab, sobald ich nach 09 wieder auf meinen Button klicke
 
T

toomuchcoffeeman

Ambitioniertes Mitglied
Logcat?
Kennst das? Wenn nicht -> kennenlernen!

Wird wahrscheinlich sein, weil Du geklicktZyklen nicht castest. Ist aber nur geraten.

Casten?
Kennst das? Wenn nicht -> kennelernen!

;-)

Ich helfe ja wirklich sehr gern, aber alles vorkauen ist quatsch, weil ich persönlich null Interesse habe Dein Prog fertig zu stellen ;-)
 
A

androci

Neues Mitglied
ok Leute,
der else Zweig muss so lauten

Code:
else {
           textZyklen.setText([COLOR=Red][B]""+[/B][/COLOR]geklicktZyklen);
           }
...vielen Dank für eure Hilfe

@tomuchcoffeeman
sorry, bin halt ein totaler Java Anfänger :(
 
DagobertDokate

DagobertDokate

Dauergast
M

MrPermanent

Fortgeschrittenes Mitglied
//String.valueOf(geklicktZyklen);
if (geklicktZyklen<10) {
textZyklen.setText("0"+String.valueOf(geklicktZyklen));
} else {
textZyklen.setText(String.valueOf(geklicktZyklen));
}

int als string ausgeben, ohne cast ist selten gut.

Wer nicht gerade ne Ausbildung/Studium gemacht hat, hat doch auch genau so angefangen! Ein bisschen mehr Verständnis.
 
Zuletzt bearbeitet:
Ähnliche Themen - auf Button klicken hochzählen, Zahöanformat soll mit 00 anfangen und mit 01 fortgehen Antworten Datum
3
8