需求:在界面上有兩個(gè)按鈕,一個(gè)開始,一個(gè)停止。點(diǎn)擊開始按鈕,更新應(yīng)用的標(biāo)題為當(dāng)前時(shí)間。按停止按鈕停止更新時(shí)間。考察:handler的使用。這里借助Handler來實(shí)現(xiàn)
package com.zhy.ui;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import com.zhy.shortcut.R;
public class RefershUiActivity extends Activity implements OnClickListener{
private static final int UPDATA_TITIE=1;
Button start;
Button stop;
//聲明一個(gè)繼承自Runnable的變量
MyRunnable runnable;
Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ui);
runnable=new MyRunnable();
start=(Button) findViewById(R.id.start);
stop=(Button) findViewById(R.id.stop);
//實(shí)列化Handler
handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//更新應(yīng)用標(biāo)題
updateTitile(msg);
}
};
start.setOnClickListener(this);
stop.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.start:
//點(diǎn)擊開始的時(shí)候調(diào)用handler.post()方法
handler.post(runnable);
break;
case R.id.stop:
//停止更新標(biāo)題
if(runnable!=null){
handler.removeCallbacks(runnable);
}
break;
default:
break;
}
}
class MyRunnable implements Runnable{
//覆寫run方法
@Override
public void run() {
//創(chuàng)建Message
Message msg=new Message();
//標(biāo)記消息
msg.what=UPDATA_TITIE;
//設(shè)置數(shù)據(jù)
msg.obj=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(new Date());
//發(fā)送消息
handler.sendMessage(msg);
//在run方法內(nèi)部在調(diào)用postDelayed()方法。
handler.postDelayed(this, 1000);
}
}
//更新標(biāo)題
private void updateTitile(Message msg) {
switch (msg.what) {
case UPDATA_TITIE:
RefershUiActivity.this.setTitle(String.valueOf(msg.obj));
break;
default:
break;
}
}
}