效果图如下:
点击Start
点击Delete
代码
public class MainActivity extends Activity implements OnClickListener {
TextView tv_time;
Button btn_Start;
Button btn_remove;
private Handler timeHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
// 获取系统当前时间
Calendar calendar = Calendar.getInstance();
// 将当前时间在TextView中显示出来
tv_time.setText(format(calendar.get(Calendar.HOUR_OF_DAY)) + ":"
+ format(calendar.get(Calendar.MINUTE)) + ":"
+ format(calendar.get(Calendar.SECOND)));
// 触发Handler,下面这个函数就类似一个循环
// 每1000毫秒发送一次,也就是每1000毫秒进一次Handler,也就是每1000毫秒执行一次refreshTime函数
timeHandler.sendEmptyMessageDelayed(1, 1000);
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_time = (TextView) findViewById(R.id.tv_time);
btn_Start = (Button) findViewById(R.id.btn_start);
btn_remove = (Button) findViewById(R.id.btn_remove);
btn_Start.setOnClickListener(this);
btn_remove.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_start:
// 此函数触发Handler,也就读取系统时间,这里的1可以理解为一个要执行事件的代号
timeHandler.sendEmptyMessage(1);
break;
case R.id.btn_remove:
timeHandler.removeMessages(1);
tv_time.setText("Deleted");
break;
default:
break;
}
}
/* 格式化字符串(7:3->07:03) */
private String format(int x) {
String s = "" + x;
if (s.length() == 1)
s = "0" + s;
return s;
}
}