Всегда открытое приложение, показывающее текущую дату и время - PullRequest
0 голосов
/ 26 февраля 2020

Я делаю приложение, которое всегда будет открыто для моего планшета. Я пытаюсь показать текущую дату и время в режиме реального времени. На данный момент я использую код ниже

<DigitalClock
        android:id="@+id/digitalClock"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:gravity="center"
        android:textColor="#FFFFFF"
        android:textSize="24sp"
        android:textStyle="bold"
        app:layout_constraintTop_toBottomOf="@+id/date"
        tools:layout_editor_absoluteX="0dp" />

И он работает отлично. Приложение всегда открыто и время меняется в режиме реального времени (хотя я сейчас ищу, как добавить секунды) .

Для даты я использовал этот код

dateTimeDisplay = (TextView)findViewById(R.id.date);
calendar = Calendar.getInstance();
SimpleDateFormat dateFormat = new SimpleDateFormat("EEEE, dd MMMM, yyyy");
date = dateFormat.format(calendar.getInstance().getTime());
dateTimeDisplay.setText(date);

Но показывает текущую дату, а не в реальном времени. Он меняется только когда я открываю приложение.

Я могу сказать, потому что я поставил секунды в dateFormat, чтобы проверить это, и это было stati c.

SimpleDateFormat dateFormat = new SimpleDateFormat("EEEE, dd MMMM, yyyy , ss");

У кого-нибудь есть идеи? Спасибо !!

1 Ответ

1 голос
/ 26 февраля 2020

DigitalClock устарел. Рекомендуется использовать TextClock .

TextClock сделает вашу работу по умолчанию. Проверьте приведенный ниже пример

<TextClock
        android:id="@+id/textClock1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:format12Hour="hh:mm:ss a"
        android:textColor="#F1511B"
        android:textSize="45dp"
        android:textStyle="bold" />

и для 24-часового формата используйте

android:format24Hour="hh:mm:ss a

Improvement note: Вместо использования классов SimpleDateFormat и вспомогательных классов вы должны использовать ThreeTenABP , как указывает Ole VV в комментарии. Вот Как использовать ThreeTenABP в Android Project

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