時鐘顯示

  1. FirstDemoActivityjava

public class MyDemoActivity extends AppCompatActivity {
    public static final int SET = 1;        //設置一個what標記
    private TextView info = null;       //文本顯示組件
    private Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
                case SET:       //判斷標誌位
                    MyDemoActivity.this.info.setText("當前時間爲:" +
                            msg.obj.toString());     //設置顯示時間
                    break;
            }
        }
    };

    /**
     * 顯示時間類
     */
    private class ClockTread implements Runnable {

        @Override
        public void run() {
            while (true) {
                Message msg = MyDemoActivity.this.handler.obtainMessage(MyDemoActivity
                        .SET, new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").
                        format(new Date()));        //實例化Message
                MyDemoActivity.this.handler.sendMessage(msg);       //發送消息
                try {
                    Thread.sleep(1000);     //延遲1s
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.setContentView(R.layout.activity_main);
        this.info = (TextView)findViewById(R.id.info);
        new Thread(new ClockTread()).start();       //  啓動線程
    }
}

2. activity_main.xmlandroid

<AnalogClock
    android:id="@+id/AnalogClock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
<TextView
    android:id="@+id/info"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

普通的方法是沒法直接刷新UI界面的,這時須要藉助Handler發送給主線程消息傳遞數據。ide

相關文章
相關標籤/搜索