如何在android中使用定时器程序使用Lap按钮(android中timmer应用程序的Lap按钮代码)
我有一个按钮开始和三个编辑文本。如果我按下开始按钮,计时器开始计时,按钮文本变为圈,小时分和秒显示在edittext1中。如果我按Lap按钮,则editText1的值为stop。editText1的所有三个值都显示在editText2的editText1停止位置 请帮助我的圈按钮的源代码。到目前为止,我有以下代码:如何在android中使用定时器程序使用Lap按钮(android中timmer应用程序的Lap按钮代码),android,timer,Android,Timer,我有一个按钮开始和三个编辑文本。如果我按下开始按钮,计时器开始计时,按钮文本变为圈,小时分和秒显示在edittext1中。如果我按Lap按钮,则editText1的值为stop。editText1的所有三个值都显示在editText2的editText1停止位置 请帮助我的圈按钮的源代码。到目前为止,我有以下代码: package com.example.timmerproject; import java.util.Timer; import java.util.TimerTask; imp
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");
}
}
});
}
}
这有用吗?不,我想输入Lap按钮的源代码。当我按下Lap按钮时,edittext1的值Hours,minute,seconds将显示在editText2中,edittext1的值将显示为stop。没有人能得到这个答案???看起来你就快到了。尝试添加一个新的长lastLap=0;当你得到毫秒时,使用currentTimeMillis-startTime-lastLap,然后设置lastLap=currentTimeMillis?请给我一个代码。