Android 计时器Chronometer控件 问题

Missing311 2012-03-11 01:44:29
我刚开始学习android开发想自己实现计时的功能,代码如下:
java:
TimerActivity

package gao.com;

import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.Chronometer;

public class TimerActivity extends Activity {
/** Called when the activity is first created. */
private Chronometer chro;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
chro =(Chronometer)findViewById(R.id.chro1);
chro.setFormat("%s");
System.out.println("time"+chro.getBase());
}

//开始计时
public void onStart(View view) {
chro.start();
}

//停止
public void onStop(View view) {
chro.stop();
}

//重置
public void onReset(View view) {
chro.setBase(SystemClock.elapsedRealtime());
chro.stop();
}
}

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="45pt"
android:layout_marginTop="5pt"
android:text="@string/title"
android:textSize="12pt" />

<Chronometer
android:id="@+id/chro1"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_marginLeft="15pt"
android:layout_marginTop="5pt"
android:text="@string/chro1"
android:textSize="10pt"
android:textColor="#ff0000"/>
<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content">

<Button
android:id="@+id/bu1"
android:onClick="onStart"
android:text="@string/bu1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

<Button
android:id="@+id/bu2"
android:onClick="onStop"
android:text="@string/bu2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

<Button
android:id="@+id/bu3"
android:onClick="onReset"
android:text="@string/bu3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

</LinearLayout>



</LinearLayout>

运行正常
问题一:
当使用控件提供的start()和Stop方法的时候,当我第一次点击开始,然后点击停止时,可以正确的显示时间,但是当我停止一会之后再次点击开始时,时间会进行跳跃性增加,我也知道这个问题的原因,但是如何解决呢?
问题二:
我如何设置进行毫秒级的计时啊?
问题三:当我点击恢复计时器按钮后,隔一段时间,再点开始时,他也会出现跳跃性增加?这个如何解决啊?







...全文
171 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧