Android - время нажатия кнопки - PullRequest
0 голосов
/ 10 ноября 2011

Как мне узнать, сколько времени прошло между button1 onClick и button2 onClick.

это то, что я написал, но это не работает, просто печатает текущее время.

start = (Button) findViewById(R.id.start);
        start.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {

        private long startTime = System.currentTimeMillis();

    }
    });

        stop = (Button) findViewById(R.id.stop);
        stop.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {

            final long endTime = System.currentTimeMillis();
            final long elapsedTime = endTime - startTime;

            final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
            dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));


        try {
            BufferedWriter out = new BufferedWriter(new FileWriter("/sdcard/timer.txt", true));
            out.write("Elapsed time:" + dateFormat.format(new Date(elapsedTime)));
            out.write("\r\n");
            out.close();
        } catch (Exception e) {
        }

    }
    });

любая помощь будет очень полезна, так как я в растерянности

большое спасибо

Ответы [ 2 ]

1 голос
/ 10 ноября 2011

Это должно работать.

private long startTime;

private SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");

public void OnCreate(Bundle b) {

    dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));

    start = (Button) findViewById(R.id.start);
        start.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {

           startTime = System.currentTimeMillis();

       }
    });

    stop = (Button) findViewById(R.id.stop);
    stop.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {

        long elaspedTime = System.currentTimeMillis() - startTIme;

    try {
        BufferedWriter out = new BufferedWriter(new FileWriter("/sdcard/timer.txt", true));
        out.write("Elapsed time:" + dateFormat.format(new Date(elapsedTime)));
        out.write("\r\n");
        out.close();
    } catch (Exception e) {
    }

    }
  });

}

0 голосов
/ 10 ноября 2011

Объявите startTime в качестве атрибута.

private long startTime;

В первом onClick(...) измените код на:

startTime = System.currentTimeMillis();

Это должно работать.Кстати, вам не нужно final ваши переменные во втором onClick(...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...