I'm trying to create a basic sample Stop Watch type application which basically displays a timer. It can then be stopped and started. I'm using the mUpdateTimeTask to do this. However my app just crashed when I run it. Below is the code; can anyone help?
final Handler mHandler = new Handler();
private
public
class TimeWatch extends Activity {
/** Called when the activity is first created. */
private Button btnStart;
private Button btnStop;
private TextView mTimeLabel;
private long mStartTime;
/** Called when the activity is first created. */
private Button btnStart;
private Button btnStop;
private TextView mTimeLabel;
private long mStartTime;
final Handler mHandler = new Handler();
private
Runnable mUpdateTimeTask = new Runnable()
}
{
publicvoid run()
{
finallong start = mStartTime;
publicvoid run()
{
finallong start = mStartTime;
long millis = SystemClock.uptimeMillis() - start;
int seconds = (int) (millis / 1000);
int minutes = seconds / 60;
seconds = seconds % 60;
int seconds = (int) (millis / 1000);
int minutes = seconds / 60;
seconds = seconds % 60;
if (seconds < 10) {
time.setText("" + minutes + ":0" + seconds);
}
else {
time.setText("" + minutes + ":" + seconds);
}
mHandler.postAtTime(this, start + (((minutes * 60) + seconds + 1) * 1000));
mHandler.postDelayed(mUpdateTimeTask, 100);
}};
time.setText("" + minutes + ":0" + seconds);
}
else {
time.setText("" + minutes + ":" + seconds);
}
mHandler.postAtTime(this, start + (((minutes * 60) + seconds + 1) * 1000));
mHandler.postDelayed(mUpdateTimeTask, 100);
}};
private OnClickListener mClickListener = new OnClickListener() {
publicvoid onClick(View v) {
if (v.getId() == R.id.btnCalculate) {
if (mStartTime == 0L) {
mStartTime = System.currentTimeMillis();
mHandler.removeCallbacks(mUpdateTimeTask);
mHandler.postDelayed(mUpdateTimeTask, 100);
}
else{
mHandler.removeCallbacks(mUpdateTimeTask);
}
}
}};
if (v.getId() == R.id.btnCalculate) {
if (mStartTime == 0L) {
mStartTime = System.currentTimeMillis();
mHandler.removeCallbacks(mUpdateTimeTask);
mHandler.postDelayed(mUpdateTimeTask, 100);
}
else{
mHandler.removeCallbacks(mUpdateTimeTask);
}
}
}};
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.onCreate(savedInstanceState);
// Access the various widgets by their id in R.java
time= (TextView) findViewById(R.id.time);
btnStart.setOnClickListener(mClickListener);
btnStop.setOnClickListener(mClickListener);
time= (TextView) findViewById(R.id.time);
btnStart.setOnClickListener(mClickListener);
btnStop.setOnClickListener(mClickListener);
}
}
