佈局:java
maina.xmlandroid
<DigitalClock android:id="@+id/myClock" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_margin="10dp" android:textSize="30sp" /> <TextView android:id="@+id/text_select" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/myClock" android:layout_centerHorizontal="true" android:text="@string/text_select" android:textSize="20sp" /> <EditText android:id="@+id/minute" android:layout_width="60dp" android:layout_height="80dp" android:layout_below="@id/text_select" android:layout_alignLeft="@id/myClock" android:layout_marginTop="20dp" android:inputType="number" android:gravity="center" /> <EditText android:id="@+id/second" android:layout_width="60dp" android:layout_height="80dp" android:layout_below="@id/text_select" android:layout_toRightOf="@id/minute" android:layout_marginTop="20dp" android:inputType="number" android:gravity="center" /> <Button android:id="@+id/button_start" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:gravity="center" android:padding="10dp" android:text="@string/myButtonText" android:textSize="30sp" />
start.xmlgit
<TextView android:id="@+id/myTime" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_margin="30dp" android:textSize="100sp" android:textColor="#FF0000" android:gravity="center" android:textStyle="bold" />
MainActivity.javaide
public class MainActivity extends Activity {
Button startButton;
EditText minuteText;
EditText secondText;
int minute;
int second;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
startButton = (Button) findViewById(R.id.button_start);
minuteText = (EditText)findViewById(R.id.minute);
secondText = (EditText)findViewById(R.id.second);
startButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (!minuteText.getText().toString().equals("")) {
minute = Integer.parseInt(minuteText.getText().toString());
}
if (!secondText.getText().toString().equals("")) {
second = Integer.parseInt(secondText.getText().toString());
}
if (minute != 0 || second != 0) {
System.out.println(minute+":"+second);
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(minute);
list.add(second);
Intent intent = new Intent();
intent.setAction("com.example.mytime.StartActivity");
intent.putIntegerArrayListExtra("times", list);
startActivity(intent);
}
}
});
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
minute = 0;
second = 0;
super.onResume();
}
}
StartActivity.java佈局
public class StartActivity extends Activity{
static int minute = -1;
static int second = -1;
final static String tag = "tag";
TextView timeView;
Timer timer;
TimerTask timerTask;
Handler handler = new Handler(){
public void handleMessage(Message msg) {
System.out.println("handle!");
if (minute == 0) {
if (second == 0) {
timeView.setText("Time out !");
if (timer != null) {
timer.cancel();
timer = null;
}
if (timerTask != null) {
timerTask = null;
}
}else {
second--;
if (second >= 10) {
timeView.setText("0"+minute + ":" + second);
}else {
timeView.setText("0"+minute + ":0" + second);
}
}
}else {
if (second == 0) {
second =59;
minute--;
if (minute >= 10) {
timeView.setText(minute + ":" + second);
}else {
timeView.setText("0"+minute + ":" + second);
}
}else {
second--;
if (second >= 10) {
if (minute >= 10) {
timeView.setText(minute + ":" + second);
}else {
timeView.setText("0"+minute + ":" + second);
}
}else {
if (minute >= 10) {
timeView.setText(minute + ":0" + second);
}else {
timeView.setText("0"+minute + ":0" + second);
}
}
}
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.v(tag, "log---------->onCreate!");
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.start);
timeView = (TextView)findViewById(R.id.myTime);
if (minute == -1 && second == -1) {
Intent intent = getIntent();
ArrayList<Integer> times = intent.getIntegerArrayListExtra("times");
minute = times.get(0);
second = times.get(1);
}
timeView.setText(minute + ":" + second);
timerTask = new TimerTask() {
@Override
public void run() {
Message msg = new Message();
msg.what = 0;
handler.sendMessage(msg);
}
};
timer = new Timer();
timer.schedule(timerTask,0,1000);
}
@Override
protected void onDestroy() {
Log.v(tag, "log---------->onDestroy!");
if (timer != null) {
timer.cancel();
timer = null;
}
if (timerTask != null) {
timerTask = null;
}
minute = -1;
second = -1;
super.onDestroy();
}
@Override
protected void onStart() {
Log.v(tag, "log---------->onStart!");
super.onStart();
}
@Override
protected void onStop() {
Log.v(tag, "log---------->onStop!");
super.onStop();
}
@Override
protected void onResume() {
Log.v(tag, "log---------->onResume!");
super.onResume();
}
@Override
protected void onRestart() {
Log.v(tag, "log---------->onRestart!");
super.onRestart();
}
@Override
protected void onPause() {
Log.v(tag, "log---------->onPause!");
super.onPause();
}
}
本文本詳細源碼文件請訪問:http://download.csdn.net/detail/chrp99/5646983spa