时间表一样,将系统时间实时更新显示在TextView中
布局 一个TextView
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.jn.excerseproject.MainActivity"> <TextView android:id="@+id/tvTime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="" /> </RelativeLayout>
主Activity:
public class MainActivity extends AppCompatActivity { @Bind(R.id.tvTime) TextView tvTime; public static final int MSG_ONE = 1; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); //通过消息的内容msg.what 分别更新ui switch (msg.what) { case MSG_ONE: //获取到系统当前时间 long类型 long time = System.currentTimeMillis(); //将long类型的时间转换成日历格式 Date data = new Date(time); // 转换格式,年月日时分秒 星期 的格式 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 EEE"); //显示在textview上,通过转换格式 tvTime.setText(simpleDateFormat.format(data)); break; default: break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); new TimeThread().start(); } //开一个线程继承Thread public class TimeThread extends Thread { //重写run方法 @Override public void run() { super.run(); // do-while 一 什么什么 就 do { try { //每隔一秒 发送一次消息 Thread.sleep(1000); Message msg = new Message(); //消息内容 为MSG_ONE msg.what = MSG_ONE; //发送 handler.sendMessage(msg); } catch (InterruptedException e) { e.printStackTrace(); } } while (true); } } }