Android Kleine ImageButton Frage

undertaker

Mitglied
Hallo allerseits,

ich habe einen ImageButton, der mit einem Klick einen Zähler hochzählt. Das funktioniert soweit ohne Probleme. Jetzt hätte ich aber gerne, dass er den Zähler auch hochzählt, wenn man auf dem Button draufbleibt. Dazu habe ich dann einen OnTouchListener gemacht der so aussieht:

Java:
button.setOnTouchListener(new OnTouchListener()
		{
			@Override
			public boolean onTouch(View v, MotionEvent event)
			{				
				counter++;

				return false;
			}
		});

Mein Problem ist jetzt, das der Zähler viel zu schnell hochgezählt wird. Muss ich die Geschwindigkeit nun selbst (z.B. mit hilfe von einem Thread?) regulieren oder gibt es da schon fertige Möglichkeiten?
 
Fertig gibt es nicht. Thread ist allerdings auch nicht nötig.

Java:
long lastStep = -1;
button.setOnTouchListener(new OnTouchListener()
        {
            @Override
            public boolean onTouch(View v, MotionEvent event)
            {            
                if(lastStep == -1 || (System.currentTimeMillis() - lastStep) >= 500) {   
                     counter++;
                     lastStep = System.currentTimeMillis();
                }
 
                return false;
            }
        });

Der Code ist ungetestet und einfach so runtergetippt, aber ich glaube das Prinzip ist klar. Wenn lastStep gleich -1 ist oder das letzte Update zumindest 500ms her ist, wird der Counter hochgezählt.
 

Zurück
Oben