我有一个按钮开始和三个editText。如果我按下开始按钮,则计时器启动,按钮文本更改为 Lap,小时分钟和秒数显示在 edittext1 中。如果我按下 Lap 按钮,那么 editText1 的值将停止。editText1 的所有三个值都显示在editText2 中editText1 的停止位置。
请帮助我获取 Lap 按钮源代码。到目前为止,我有以下代码:
package com.example.timmerproject;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class LapActivity extends Activity
{
EditText ed1,ed2,ed3;
Button btntimer;
final Handler handler = new Handler();
long startTime=0;
Handler h2 = new Handler();
Runnable run = new Runnable()
{
@Override
public void run()
{
// TODO Auto-generated method stub
long millis = System.currentTimeMillis() - startTime;
int seconds = (int)(millis/1000);
int hours =seconds/3600;
int minutes = (seconds % 3600)/60;
seconds = seconds % 60;
ed1.setText(String.format("%02d:%02d:%02d", hours,minutes,seconds));
h2.postDelayed(this, 500);
}
};
class firstTask extends TimerTask
{
@Override
public void run()
{
handler.sendEmptyMessage(0);
}
};
class secondTask extends TimerTask
{
@Override
public void run()
{
// TODO Auto-generated method stub
LapActivity.this.runOnUiThread(new Runnable()
{
@Override
public void run()
{
// TODO Auto-generated method stub
long millis = System.currentTimeMillis() - startTime;
int seconds = (int)(millis/1000);
int hours =seconds/3600;
int minutes = (seconds % 3600)/60;
seconds = seconds % 60;
ed2.setText(String.format("%02d:%02d:%02d", hours,minutes,seconds));
}
});
}
}
class thirdTask extends TimerTask
{
@Override
public void run()
{
// TODO Auto-generated method stub
LapActivity.this.runOnUiThread(new Runnable()
{
@Override
public void run()
{
// TODO Auto-generated method stub
long millis = System.currentTimeMillis() - startTime;
int seconds = (int)(millis/1000);
int hours =seconds/3600;
int minutes = (seconds % 3600)/60;
seconds = seconds % 60;
ed3.setText(String.format("%02d:%02d:%02d", hours,minutes,seconds));
}
});
}
}
Timer timer = new Timer();
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.lap);
ed1 = (EditText)findViewById(R.id.ed11);
ed2 = (EditText)findViewById(R.id.ed12);
ed3 = (EditText)findViewById(R.id.ed13);
btntimer = (Button)findViewById(R.id.lapbutton);
btntimer.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
Button btn = (Button)v;
if(btn.getText().equals("Stop"))
{
timer.cancel();
timer.purge();
h2.removeCallbacks(run);
btn.setText("Start");
}
else
{
startTime = System.currentTimeMillis();
timer = new Timer();
timer.schedule(new firstTask(), 0,500);
timer.schedule(new secondTask(), 0,500);
timer.schedule(new thirdTask(), 0,500);
h2.postDelayed(run, 0);
btn.setText("Stop");
}
}
});
}
}