2016-03-23 16 views
0

Ich muss Daten für ein Intervall sammeln, hier wird die Datensammlung mit einer zählenden Ganzzahl simuliert. Ich kann diese Ganzzahl jedoch nicht sammeln. Ich brauche die Sammlung zu starten, nachdem eine Schaltfläche geklickt wurde und zu beenden, wenn auf eine andere geklickt wird. Irgendwelche Ideen?Wie verwende ich einen Timer in Android?

package com.example.test.gothedistance; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

import java.util.Timer; 
import java.util.TimerTask; 

public class MainActivity extends AppCompatActivity { 

Button start, stop; 
TextView sumText; 
int count; 
Timer t; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    start = (Button) findViewById(R.id.startButton); 
    stop = (Button) findViewById((R.id.stopButton)); 
    sumText = (TextView) findViewById(R.id.sumTV); 
    t = new Timer(); 
    count = 0; 




    t.scheduleAtFixedRate(
      new TimerTask() 
      { 
       public void run() 
       { 
        count++; 

       } 
      },0,2000); 

    stop.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      t.cancel(); 
      sumText.setText(count); 
     } 
    }); 
} 
} 
+0

Ich denke, dass man für so etwas suchen: http://android-er.blogspot.com.es/2013/12/example-of- using-timer-and-timertask-on.html hoffe es hilft! –

+1

Ich würde auch sagen, dass Timer in Android normalerweise nicht verwendet wird, normalerweise ist es entweder ein Alarm oder eine verzögerte Nachricht an einen Handler. –

Antwort

1

Das Problem ist wahrscheinlich mit der Linie sumText.setText(count), die TextView.setText(int resid) verwendet. Das heißt, es wird nach einer ID gesucht, die gleich count ist, anstatt den Wert von count anzuzeigen. Sie müssen diesen Wert in eine ganze Zahl konvertieren zuerst:

sumText.setText(Integer.toString(count)) 
+0

Oh jeez, das ist peinlich (ich habe eine Sprache benutzt, die sich automatisch um dieses Problem gekümmert hätte: b) –

Verwandte Themen