前言:
在考试APP和网络培训上有很多的应用,自己写的CounterTimer类.
测试用小例子:
package com.elvis.cnttimer;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.app.Activity;
import android.graphics.Color;
import android.view.Menu;
import android.view.Window;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private TextView txtView;
private MyCnt mCnt;
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtView = (TextView)findViewById(R.id.textView1);
mCnt = new MyCnt(2*1000*3600,1000);
mCnt.start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public class MyCnt extends CountDownTimer{
public MyCnt(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
// TODO Auto-generated constructor stub
}
@Override
public void onFinish() {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "时间到了...", Toast.LENGTH_SHORT);
}
@Override
public void onTick(long m) {
// TODO Auto-generated method stub
// m 是微秒为单位的
//小时 设置
int myHour = (int)((m/1000)/3600);
String myHourStr = myHour + "";
if(myHourStr.length() < 2)
{
myHourStr = "0" + myHourStr;
}
//分钟设置
int myMin = (int)(((m/1000)- myHour *3600)/60);
String myMinStr = myMin + "";
if(myMinStr.length() < 2)
{
myMinStr = "0" + myMinStr;
}
//秒设置
int mySec= (int)((m/1000)- myHour *3600 - myMin * 60);
String mySecStr = mySec + "";
if(mySecStr.length() < 2)
{
mySecStr = "0" + mySecStr;
}
txtView.setTextSize(22);
txtView.setTextColor(Color.RED);
txtView.setText("倒计时 \n\n" + myHourStr + "/" + myMinStr + "/" + mySecStr);
}
}
}
注意:
super.onCreate(savedInstanceState);
去掉这句话程序不能运行.因为父类的onCreate()完成了很多我们不能接触的事情来确保我们的app能顺利运行.