1. 程式人生 > >Android 通過Handler獲取當前時間

Android 通過Handler獲取當前時間

一言不合就上程式碼 

public class HandlerDemoActivity extends AppCompatActivity {

    private Button getTime;
    private TextView setTime;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_handler_demo);
        getTime = (Button) findViewById(R.id.getTime);
        setTime = (TextView) findViewById(R.id.setTime);
        
        getTime.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                MyThread myThread = new MyThread();
                Thread t1 = new Thread(myThread);
                t1.start();
            }
        });
    }
    Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            if (msg.what == 0x11){
                setTime.setText(msg.getData().getString("time"));
            }
        }
    };

    class MyThread implements Runnable{
        @Override
        public void run() {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            //MM表示月份從1開始,mm表示月份從0開始
            //HH表示24小時制,hh表示12小時制
            //SimpleDateFormat導這個包--import java.text.SimpleDateFormat
            String time = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new Date());
            Bundle bundle = new Bundle();
            Message message = new Message();
            //將資料繫結到Bundle上
            bundle.putString("time",time);
            //bunndle傳值,耗時,效率低
            message.setData(bundle);
            //傳送message資料
            handler.sendMessage(message);
            //標誌是哪個執行緒傳過來的
            message.what = 0x11;
        }
    }
}

想說的都在註釋裡 

xml檔案裡就一個Button,一個TextView,so easy