Android Chronometer 无法启动

标签 android view chronometer

我有一个 View ,我想在上面添加一个计时器。然后,在绘制时我想显示当前时间。这是我的做法:

    public class MyView extends View {
    private Chronometer chrono;
    private long elapsedTime=0;
    private String currentTime="00:00:00";

    public MyView(Context context) {
    super(context);
    // TODO Auto-generated constructor stub
    init(context);
    }

    private void init(Context ctx){
    chrono= new Chronometer(ctx);
    chrono.setText("Time: 00:00:00");
    chrono.setOnChronometerTickListener(new OnChronometerTickListener()
    {
           public void onChronometerTick(Chronometer arg0) {

             String HH =((elapsedTime / 3600) < 10 ? "0" : "") + (elapsedTime / 3600);
             String MM =((elapsedTime / 60) < 10 ? "0" : "") + (elapsedTime / 60); 
             String SS =((elapsedTime % 60) < 10 ? "0" : "") + (elapsedTime % 60);
             String currentTime = HH+":"+MM+":"+SS; 
             elapsedTime = (SystemClock.elapsedRealtime() - arg0.getBase()) / 1000;
             arg0.setText(currentTime);
           }
    }
    );
    }

    chrono.setBase(SystemClock.elapsedRealtime());
    chrono.start();

}
    @Override
    protected void onDraw(Canvas canvas) {
        canvas.drawText(currentTime, someWidth , someHeight, somePaint);
    }

初始文本 00:00:00 被绘制,但它没有改变。我一定做错了什么。有什么想法吗?

最佳答案

您创建了一个局部变量 String currentTime 并且您正在写入该变量而不是您的全局变量。

关于Android Chronometer 无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3811005/

相关文章:

android - 如何使用 smack API 4.1.0 android 发送一对一消息

view - CouchDb - 阻止 couchDb 提供 View

laravel - 如何在 Laravel 中不使用表单的情况下将变量从 View 传递到 Controller ?

python - 如何在 Django 中对特定用户和特定项目使用 deleteview?

Android - 获取计时器小部件的时间

java - 改变方向时计时器重新启动

android - android 中的计时器倒计时

android - 自定义 ListView 项中的动态度量文本,OnGlobalLayoutListener 仅调用一次

android - 如果方向改变,相机不会覆盖旧图像

android - 推送通知使用负载打开正确的页面