如何在android中使用定时器程序使用Lap按钮(android中timmer应用程序的Lap按钮代码)

如何在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

我有一个按钮开始和三个编辑文本。如果我按下开始按钮,计时器开始计时,按钮文本变为圈,小时分和秒显示在edittext1中。如果我按Lap按钮,则editText1的值为stop。editText1的所有三个值都显示在editText2的editText1停止位置

请帮助我的圈按钮的源代码。到目前为止,我有以下代码:

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?请给我一个代码。