如何在Android控件TextView中显示实时的时间

昨天在项目中遇到了在TextView控件中显示实时时间的情况 查阅了一些资料做起来很简单,今天整理一下,和大家共同学习 :

xml布局文件如下 :就一个简单的TextView

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.lsc.MainActivity">
 <TextView
            android:id="@+id/main_tv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
</RelativeLayout>
java 代码如下:
public class MainActivity extends AppCompatActivity {
    TextView mainTv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
      //获取textView控件 我用的3.0.1版本的AS 如果是以前版本的应该强转 
        mainTv = findViewById(R.id.main_tv);
        new TimeThread().start();//启动线程

    }
//写一个新的线程每隔一秒发送一次消息,这样做会和系统时间相差1秒
   public class TimeThread extends Thread{
       @Override
       public void run() {
           super.run();
           do{
               try {
                   Thread.sleep(1000);
                   Message msg = new Message();
                   msg.what = 1;
                   handler.sendMessage(msg);

               } catch (InterruptedException e) {
                   e.printStackTrace();
               }
           }while (true);

       }
   }
   private Handler handler = new Handler(new Handler.Callback() {
       @Override
       public boolean handleMessage(Message msg) {
           switch (msg.what){
               case 1:
                  mainTv.setText(new SimpleDateFormat("HH:mm:ss").format(new Date(System.currentTimeMillis())));
                   break;
           }
           return false;
       }
   });

    
}
效果图如下:


猜你喜欢

转载自blog.csdn.net/weixin_42190712/article/details/80287412
今日推荐