android12小时切换图,Android TextClock的坑(系统12小时强制转换成24小时格式)

起初自己为了做一个时间显示,是采用开线程的方式来实现的,但是总感觉这样,开着线程,延迟一秒钟去刷新控件,总感觉对内存不友好,找了一下资料发现了一个官方的控件,可以帮我们实现,当时在12小时和24小时格式的问题上,转换我这边还是有个问题,我这边不管系统是什么小时的格式,统一按照24小时的来,网上一些的资料都没有用,于是用了自己的方式来解决了

注意该控件最低api17,才支持

android {

compileSdkVersion 29

buildToolsVersion "29.0.2"

defaultConfig {

applicationId "com.example.test_01"

minSdkVersion 17

targetSdkVersion 29

versionCode 1

versionName "1.0"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

}

使用例子:

这样不管系统的设置是12小时还是24小时,都可以强制转换成24小时的格式了,代码逻辑判断都是不用写了。

记录一下自己刚开始,用线程每秒刷新的方式处理方式,下面是核心部分代码:

private boolean isTime = true;//时间 线程刷新方式

new Thread(new Runnable() {

@Override

public void run() {

while (isTime == true) {

try {

Thread.sleep(1000);

init_handerNum(1);

// Log.i(TAG, "run: 时间啊");

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}).start();

@Override

protected void onDestroy() {

super.onDestroy();

isTime = false;

handler.removeCallbacksAndMessages(null);

}

private void init_handerNum(int num) {

Message message = Message.obtain();

message.what = num;

handler.sendMessage(message);

}

private SimpleDateFormat f1, f2, f3;

private String year, timeE, times;

private Date now;

private void init_time() {

now = new Date();

f1 = new SimpleDateFormat("yyyy 年 MM 月 dd 日 ");

f2 = new SimpleDateFormat("EEEE");

f3 = new SimpleDateFormat(" HH:mm:ss");

year = f1.format(now);

timeE = f2.format(now);

times = f3.format(now);

}

private class HandlerMain extends Handler {

private WeakReferenceweakReference;

public HandlerMain(MainActivity activity) {

weakReference = new WeakReference<>(activity);

}

@Override

public void handleMessage(@NonNull Message msg) {

super.handleMessage(msg);

MainActivity activity = weakReference.get();

if (activity != null) {

switch (msg.what) {

case 1:

//时间刷新

init_time();

tvYear.setText(year); //显示年月日textview控件

tvTimeE.setText(timeE); //显示星期几textview控件

tvTimes.setText(times); //显示时分秒textview控件

break;

}

}

}

}

如果你还有其他的需求也可以参考一下,其他大佬的文章:

https://blog.csdn.net/you943047219/article/details/80826855?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3.nonecase

https://blog.csdn.net/qq_34207101/article/details/91369418

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值