方法一:
工具类中操作
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()
}
最后:我也是小白,写这些只是为了记录,可能有更简单的方法,仅供参考哦