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

A

androci

Neues Mitglied
0
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);
        }
                
        });
 
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);
}
 
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);
                }
        }
                
        });
 
du sagst

zahl = 0

und 2 zeilen später fragst:

if zahl < 10


da passt was net
 
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...
 
@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:
 
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?
 
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?
 
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.
 
ok, hab jetzt zahl durch geklicktZyklen ersetzt :blushing: allerdings stürzt die App ab, sobald ich nach 09 wieder auf meinen Button klicke
 
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 ;-)
 
  • Danke
Reaktionen: androci
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 :(
 
//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

MES
Antworten
10
Aufrufe
819
MES
MES
A
  • AnimaAngelo85
Antworten
1
Aufrufe
337
swa00
swa00
B
Antworten
4
Aufrufe
492
bb321
B
Zurück
Oben Unten