我正在制作一个将始终在平板电脑中打开的应用程序。我正在尝试实时显示当前日期和时间。现在,我使用下面的代码
<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中添加了几秒钟来测试它,它是静态的。
SimpleDateFormat dateFormat = new SimpleDateFormat("EEEE, dd MMMM, yyyy , ss");
有人有什么想法吗?谢谢!!
答案 0 :(得分:1)
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用作OleV.V。在评论中指出。这是How to use ThreeTenABP in Android Project