该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
package com.zzu.timer;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.app.Activity;
public class MainActivity extends Activity {
//秒数部分
private int secText = 0;
private boolean isStart = false;
private TextView showTime;
private Button startButton;
private Button stopButton;
private Button restartButton;
private Button signButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showTime = (TextView)findViewById(R.id.showTime);
startButton = (Button)findViewById(R.id.startButton);
stopButton = (Button)findViewById(R.id.stopButton);
restartButton = (Button)findViewById(R.id.restartButton);
signButton = (Button)findViewById(R.id.signButton);
showTime.setText("00:00:00");
startButton.setOnClickListener(new ButtonListener());
}
Handler myHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
Log.d("DDDDDDDDDD", "handleMessage");
//接受sendMessage发送的时间数据
Bundle b = msg.getData();
String time = b.getString("time");
//更新UI
showTime.setText(time);
}
};
public class ButtonListener implements OnClickListener{
@Override
public void onClick(View v) {
if(v.getId() == R.id.startButton){
isStart = true;
Log.d("DDDDDDDDDD", "start");
timeThread.run();
}
if(v.getId() == R.id.stopButton){
isStart = false;
}
}
}
//时间控制线程
Runnable timeThread = new Runnable() {
@Override
public void run() {
while(isStart){
secText++;
//取得当前时间
String temp = getHour() + ":" + getMin() + ":" + getSec();
Log.d("DDDDDDDDDD", temp);
Message msg = myHandler.obtainMessage();
Bundle b = new Bundle();
b.putString("time",temp);
msg.setData(b);
//延迟一秒发送消息
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
myHandler.sendMessage(msg);
Log.d("DDDDDDDDDD", "send");
}
}
};
public String getSec(){
int sec = secText % 60;
return sec < 10 ? "0" + sec : String.valueOf(sec);
}
public String getMin(){
int min = (secText / 60) % 60;
return min < 10 ? "0" + min : String.valueOf(min);
}
public String getHour(){
int hour = secText / 3600;
return hour < 10 ? "0" + hour : String.valueOf(hour);
}
}