0

私はカウントアップタイマーを実装しており、StackoverFlowの例に従います。私のバージョンでは、開始ボタンを押してカウントを開始し、停止ボタンを押して停止します。しかし、問題は、アクティビティに入った直後にカウントが開始されることです。私が望むようにそれを作る方法はありますか?

public class StartActivity extends Activity
{
    Button beginRecordingButton;
    TextView timer;
    long startTime;
    long countup;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {super.onCreate(savedInstanceState);
        setContentView(R.layout.startactivity);
        beginRecordingButton = (Button) findViewById(R.id.BeginRecording);
        timer = (TextView) findViewById(R.id.timer);
        final Chronometer stopwatch = (Chronometer) findViewById(R.id.chrono);
        startTime = SystemClock.elapsedRealtime();
        stopwatch.setOnChronometerTickListener(listener);


        beginRecordingButton.setOnClickListener(new OnClickListener()
        {
            int counter = 0;


            public void onClick(View v)
            {

                if (counter % 2 == 0)
                {


                    stopwatch.start();
                    beginRecordingButton.setText("Stop");
                }
                if (counter % 2 == 1)
                {

                    stopwatch.stop();
                    beginRecordingButton.setText("Begin");
                }
                counter++;  //counter is used for knowing it is stop or begin

            }
        });
    }

    private OnChronometerTickListener listener = new OnChronometerTickListener()
    {

        public void onChronometerTick(Chronometer chronometer)
        {
            String text;
            countup = (SystemClock.elapsedRealtime() - chronometer.getBase())/1000;
            if(countup%60<10)
            {
                 text = (countup/60) + ":0" + (countup%60);
            }
            else
            {
                 text = (countup/60) + ":" + (countup%60);
            }

            timer.setText(text);
        }
    };
}
4

1 に答える 1

0

私は次のようにして解決策を見つけました:

long test;

test = (SystemClock.elapsedRealtime() - stopwatch.getBase())/1000;
Log.i(TAG, = (SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000 - test;

basically String.valueOf(test));
stopwatch.start();

カウントアップのアイデアは、スタートボタンを押して0から移動した場合に通過時間を差し引くことです

于 2012-07-21T17:54:47.423 に答える