之前做过倒计时功能,不记得怎么写的了,今天又做这个功能, 发现用CountDownTimer 非常简单就实现了
以下是代码:
public class TimeCount extends CountDownTimer { private static final int TIME_TASCK = 1000; private Button button; private Context context; public TimeCount(Context context, long millisInFuture, Button view) { super(millisInFuture, TIME_TASCK); button = view; this.context = context; } @Override public void onFinish() {// 计时完毕 //button.setTextColor(context.getResources().getColor(R.color.text_white)); //button.setBackgroundResource(R.drawable.button_background); button.setText(R.string.get_code); button.setEnabled(true); } @Override public void onTick(long millisUntilFinished) {// 计时过程 //button.setTextColor(context.getResources().getColor(R.color.home_item_count)); //button.setBackgroundResource(R.drawable.gray_button_background); button.setEnabled(false);//防止重复点击 button.setText(context.getString(R.string.get_code_ing, millisUntilFinished / TIME_TASCK)); } }
下面是Activity中的使用:
public class RegisterActivity extends Activity { private TimeCount timeCount; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); timeCount = new TimeCount(context, 60*1000, btnGetCode); }
@Override public void onClick(View v) {
timeCount.start();
}