【问题标题】:How to change format of TextClock in android with Kotlin如何使用 Kotlin 在 android 中更改 TextClock 的格式
【发布时间】:2021-04-07 01:49:57
【问题描述】:
<TextClock
        android:layout_marginTop="20dp"
        android:id="@+id/textClock"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="45dp"
        android:format12Hour="hh:mm:ss a"
        android:layout_gravity="center"/>

这是我的布局文件中的 TextClock 我想以编程方式将其格式从 12 小时更改为 24 小时

到目前为止,我已经尝试过:

var textClock: TextClock = view.findViewById<TextClock>(R.id.textClock)
textClock.format24Hour = "hh:mm:ss a"

但似乎没有任何效果。 在 java 中有一个名为 setFormat24Hour(CharSequence format) 的方法,但在 Kotlin 中我无法达到预期的结果。

您的帮助将不胜感激。谢谢

【问题讨论】:

  • 当你说“但在 Kotlin 中我无法达到预期的结果”时,你是什么意思?您是想说这在 Java 中有效,但在 Kotlin 中无效?这似乎几乎是不可能的,Kotlin 可以与 Java 完全互操作。
  • 我的意思是我不能在 kotlin 中使用 setFormat24Hour。在 kotlin 中只有可能的 textClock.format12Hour 和 textClock.format24Hour,它们不会改变时钟的格式
  • 很高兴该解决方案有效,但只是为了将来,TextClock.format24HourTextClock.setFormat24Hour 方法的别名。它们是相同的,所以在 Java 中没有什么是你不能用 Kotlin 调用的。据我所知,这称为 属性访问语法

标签: java android kotlin format


【解决方案1】:

正如documentation 所说,setFormat24Hour(CharSequence) 方法:

指定用于以 24 小时模式显示日期和/或时间的格式模式。

它实际上并没有将时钟更改为 24 小时制。相反,TextClock 使用系统默认设置来决定使用哪种格式。

但是如果你真的想强制执行格式,你应该将其他模式的格式设置为null,这将强制它显示你想要的方式。

【讨论】:

  • 谢谢,将 null 传递给其他方法有效!
猜你喜欢
  • 2020-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-24
相关资源
最近更新 更多