Android编程之计时器Chronometer简单示例

作者:袖梨 2022-06-25

Android中Chronometer控件继承自TextView,这个组件可以用1秒的时间间隔进行计时,并显示出计时结果。就是我们常说的计时器工具。

publicclassChronometerActivityextendsActivityimplementsOnClickListener {
  privateChronometer mChronometer;
  privateButton start, stop, reset, format, clear_format;
  @Override
  protectedvoidonCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_chronometer);
    // 初始化View widget
    initViews();
    // 设置监听事件
    initListeners();
  }
  privatevoidinitListeners() {
    start.setOnClickListener(this);
    stop.setOnClickListener(this);
    reset.setOnClickListener(this);
    format.setOnClickListener(this);
    clear_format.setOnClickListener(this);
  }
  privatevoidinitViews() {
    mChronometer = (Chronometer) findViewById(R.id.chronometer);
    start = (Button) findViewById(R.id.start);
    stop = (Button) findViewById(R.id.stop);
    reset = (Button) findViewById(R.id.reset);
    format = (Button) findViewById(R.id.set_format);
    clear_format = (Button) findViewById(R.id.clear_format);
  }
  View.OnClickListener mStartListener =newOnClickListener() {
    publicvoidonClick(View v) {
      mChronometer.start();
    }
  };
  View.OnClickListener mStopListener =newOnClickListener() {
    publicvoidonClick(View v) {
      mChronometer.stop();
    }
  };
  View.OnClickListener mResetListener =newOnClickListener() {
    publicvoidonClick(View v) {
      mChronometer.setBase(SystemClock.elapsedRealtime());
    }
  };
  View.OnClickListener mSetFormatListener =newOnClickListener() {
    publicvoidonClick(View v) {
      mChronometer.setFormat("Formatted time (%s)");
    }
  };
  View.OnClickListener mClearFormatListener =newOnClickListener() {
    publicvoidonClick(View v) {
      mChronometer.setFormat(null);
    }
  };
  @Override
  publicvoidonClick(View v) {
    switch(v.getId()) {
    caseR.id.start:
      mChronometer.start();// 开始计时
      break;
    caseR.id.stop:
      mChronometer.stop();// 暂停计时
      break;
    caseR.id.reset:
      mChronometer.setBase(SystemClock.elapsedRealtime());// 从开机到现在的毫秒数
      break;
    caseR.id.set_format:
      // 需要一个String变量,并使用"%s"表示计时信息
      mChronometer.setFormat("时间累计:%s秒");
      break;
    caseR.id.clear_format:
      mChronometer.setFormat(null);
      break;
    }
  }
}

布局文件:



  
  
  
  
  
  

相关文章

精彩推荐