Android 实时显示系统时间

创建名为DataUtils的工具类,包含获取当前时间的函数。在Activity中创建子线程每秒更新时间,并通过Handler在主线程更新UI,避免跨线程操作。在onCreate中调用setTime方法启动时间更新。
摘要由CSDN通过智能技术生成

方法一:

工具类中操作

1.创建工具类DataUtils

object DataUtils {

}

2.在工具类中创建获取时间的方法

fun getTime() : CharSequence {  //获取时间:小时和分钟

        val c = Calendar.getInstance()
        var month = c.get(Calendar.MONTH).toString()  //月份
        var day = c.get(Calendar.DAY_OF_MONTH).toString()  //日期
        var hour = c.get(Calendar.HOUR_OF_DAY).toString()  //小时
        var minute = c.get(Calendar.MINUTE).toString()   //分钟
        var second = c.get(Calendar.SECOND).toString()   //秒
        //对于时间显示格式进行设置
        month = if (month.toInt() < 10) "0" + month else month
        day = if (day.toInt() < 10) "0" + day else day
        hour = if (hour.toInt() < 10) "0" + hour else hour
        minute = if (minute.toInt() < 10) "0" + minute else minute
        second = if (second.toInt() < 10) "0" + second else second

        return hour + ":" + minute + ":" + second //按照自己需要返回字符串
    }

再需要显示时间的activity中操作

3.创建实时获取时间的子线程方法

  fun setTime() {
        object : Thread() {
            override fun run() {
                do {
                    sleep(1000)
                    val message = Message()
                    message.what = 1
                    handler.sendMessage(message)
                } while (true)
            }
        }.start()
    }

4.由于子线程不能进行UI操作,所以创建Handle

val handler:Handler= @SuppressLint("HandlerLeak")
    object :Handler() {
        override fun handleMessage(msg: Message) {
            super.handleMessage(msg)
            when (msg.what) {
                1 -> {
                      //调用 get方法并将结果显示在Textview上
                      homeTimeMS.setText(DataUtils.getTime())
                }
            else -> {
                }
            }
        }
    }

5.不要忘了在activity的onCreate()方法中调用setTime()方法

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        
        setTime()

    }

最后:我也是小白,写这些只是为了记录,可能有更简单的方法,仅供参考哦

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小趴菜8227

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值