Страница 1 из 1

Не могу показать обновляемое время

Добавлено: 16 апр 2014, 11:07
sergentum
Взял за основу урок 137 - Сенсоры и хочу сделать чтобы на экране бежало время, нагуглил что время можно взять так с параметрами на любой вкус:
c.get(Calendar.MILLISECOND);

изменил вот этот кусок кода

Код: Выделить всё

      case Sensor.TYPE_GRAVITY:
        for (int i = 0; i < 3; i++) {
          valuesGravity[i] = event.values[i];
          timeMin = c.get(Calendar.MINUTE);
          timeSec = c.get(Calendar.SECOND);
          timeMsec = c.get(Calendar.MILLISECOND);
          Log.d("LOGS", "Время: " + timeMin + ":" + timeSec + ":" + timeMsec);
        }
логи пишутся в логкат, но содержимое переменных не меняется, почему так?
и как починить, чтобы время обновлялось в логах и на экране

Код: Выделить всё

        .append("\n\nTime : " + format(valuesTime))
так тоже пробовал появлялись значения на момент запуска и все.

Re: Не могу показать обновляемое время

Добавлено: 16 апр 2014, 11:19
klblk
"c" как я понимаю экземпляр класса Calendar? он на протяжении всего цикла не изменяется с чего вдруг в нём будут меняться значения?

Re: Не могу показать обновляемое время

Добавлено: 16 апр 2014, 11:31
sergentum
да
Calendar c = Calendar.getInstance();
я так понимаю из ответа
klblk писал(а):"c" как я понимаю экземпляр класса Calendar?
т.е. это типа "копия" класса календарь, которая раз получена и меняться не будет?
а как правильно сделать чтобы менялось? поставить эту команду туда где код периодически исполняется?

апд, уточню - это нормально каждый раз когда надо обновить время выполнять эту команду или может можно как то по другому более правильно?
спасибо за помощь

Re: Не могу показать обновляемое время

Добавлено: 16 апр 2014, 11:51
altwin
[syntax=java5]
Time now = new Time();
now.setToNow();
[/syntax]
setToNow()

Re: Не могу показать обновляемое время

Добавлено: 16 апр 2014, 12:59
sergentum
Спасибо, я видел такой ответ здесь
http://stackoverflow.com/questions/5369 ... on-android
но, там написано
The Time class is a faster replacement for the java.util.Calendar and java.util.GregorianCalendar classes. An instance of the Time class represents a moment in time, specified with second precision.
The Time class is a faster replacement for the java.util.Calendar - это как следует понимать? быстрее работает или более новый класс?
Основная проблема в том что меня не устраивает точность в секунду.

Re: Не могу показать обновляемое время

Добавлено: 16 апр 2014, 13:11
altwin
sergentum писал(а): Основная проблема в том что меня не устраивает точность в секунду.
Если вы читали тему на stackowerflow, могли бы почитать до конца и посмотреть на этот ответ: http://stackoverflow.com/a/9240796/2611075
конкретнее на строку:
[syntax=java5]textViewTime.setText(today.format("%k:%M:%S"));[/syntax]
где наличие '%S' совсем не обязательно. Если же вам нужна большая точность, до милисекунд то вот пример: http://stackoverflow.com/a/10634352/2611075

P.S.
&nbspГоворят, что работает быстрее, я не проверял. Использовать лучше, так как ээто более android way + берется время из текущего в устройстве.

Re: Не могу показать обновляемое время

Добавлено: 16 апр 2014, 14:03
sergentum
да, нужна бОльшая точность.
до милисекунд то вот пример: http://stackoverflow.com/a/10634352/2611075
простите, но не вижу в этом коде миллисекунд
может быть вы про хронометр?

Re: Не могу показать обновляемое время

Добавлено: 16 апр 2014, 15:38
altwin
sergentum писал(а):да, нужна бОльшая точность.
до милисекунд то вот пример: http://stackoverflow.com/a/10634352/2611075
простите, но не вижу в этом коде миллисекунд
может быть вы про хронометр?
Это просто работающий код отображающий время, в нем используется объект Date, который как и Calendar способен выдавать милесекунды, в отличии от Time который этого не умеет.

Re: Не могу показать обновляемое время

Добавлено: 17 апр 2014, 05:11
sergentum
java.util.Date
long getTime()
Returns this Date as a millisecond value.
кажется это оно. http://developer.android.com/reference/ ... /Date.html
Интересно почему почти все соседние методы устарели и отсылают в календарь а этот нет?

Re: Не могу показать обновляемое время

Добавлено: 17 апр 2014, 07:43
altwin
sergentum писал(а):java.util.Date
long getTime()
Returns this Date as a millisecond value.
кажется это оно. http://developer.android.com/reference/ ... /Date.html
Интересно почему почти все соседние методы устарели и отсылают в календарь а этот нет?
это уже вопрос к google