Ich brauche einen Timer, um jederzeit zu starten. Ich drücke eine Taste (auf der Taste selbst), die anzeigt, wie viele Sekunden seit dem Drücken in Echtzeit vergangen ist. Immer wenn es erneut gedrückt wird, wird der Timer auf 0 zurückgesetzt und beginnt erneut zu inkrementieren.Ausführen einer Methode jede Sekunde, beginnend mit dem Tastendruck
Ich weiß, dass dies nicht der richtige Weg ist, der Button funktioniert gut, aber der Timer sollte in onCreate sein? Ich bin mir nicht sicher, wie dies soll mit einem Knopf dieses
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
downloadedImg = (ImageView) findViewById(R.id.imageView);
}
public void clickAsync(View view) {
new ImageDownloader().execute(downloadUrl);
int seconds = 0;
Button button = (Button) view;
button.setText("Seconds since clicked: " + seconds);
Timer timer = new Timer();
//each time button is clicked, time is reset to 0 and increments in real time
timer.scheduleAtFixedRate(new TimerTask()
{
public void run()
{
seconds = 0;
seconds++;
button.setText("Seconds since clicked: " + seconds);
}
}, 0, 1000);
}
}
deklarieren 'Timer Timer' in der Klasse direkt nicht in' ClickAsync() ' –
Ich verstehe Ihre Frage nicht. Was willst du erreichen? –
@JayminPanchal, aber die Sekunden/Schaltfläche müssen als final deklariert werden, da auf sie innerhalb der inneren Klasse zugegriffen wird, so dass mein Code nicht funktioniert –