首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TimeUnit无法解析符号

TimeUnit无法解析符号
EN

Stack Overflow用户
提问于 2015-02-25 11:23:19
回答 1查看 10.5K关注 0票数 2

我正在试着做一个基本的倒计时器。老实说,我大部分都是通过教程得到的,所以我并不完全理解它的工作原理,但我已经尝试了几个小时来寻找答案,我不知道还能去哪里找。

在TimeUnit之后,我在底部得到了一个“无法解析符号”。例如:毫秒、秒、分钟。

代码语言:javascript
复制
package com.dukehatz.dev.bwexercise;

import android.os.CountDownTimer;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import org.w3c.dom.Text;

public class Dips extends ActionBarActivity {

  TextView CountdownTimer;
  Button TimeStart, TimeReset;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_dips);

    TimeStart = (Button) findViewById(R.id.TimeStart);
    TimeReset = (Button) findViewById(R.id.TimeReset);
    CountdownTimer = (TextView) findViewById(R.id.CountdownTimer);

    CountdownTimer.setText("5:00.000");

    final CounterClass timer = new CounterClass(100000, 1000);
    TimeStart.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            timer.start();
          }
        });
  }

  public class CounterClass extends CountDownTimer {

    public CounterClass(long millisInFuture, long countDownInterval) {
      super(millisInFuture, countDownInterval);
    }

    @Override
    public void onTick(long millisUntilFinished) {
      long millis = millisUntilFinished;
      String hms = String.format("%02d:%02d:%02d"),
          TimeUnit.MILLISECONDS.toHours(millis),
          TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis),
          TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis);
      System.out.print(hms);
      CountdownTimer.setText(hms);
    }

    @Override
    public void onFinish() {
      CountdownTimer.setText("Complete!");
    }
  }
}

我完全支持一种更简单、更初学者的方式,如果它存在的话。

谢谢你的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-25 11:31:13

你错过了一个导入。我不熟悉您正在使用的库,但他们可能希望使用java.util.concurrent.TimeUnit。如果是,请将import java.util.concurrent.TimeUnit;添加到您的导入列表中。

编辑-

啊,是的。您还有几个缺少/放错位置的圆括号。与此比较:

代码语言:javascript
复制
@Override
public void onTick(long millisUntilFinished) {
  long millis = millisUntilFinished;
  String hms = String.format("%02d:%02d:%02d",
      TimeUnit.MILLISECONDS.toHours(millis),
      TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
      TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
  System.out.print(hms);
  CountdownTimer.setText(hms);
}

这里的想法是,您传递的小时、分钟和秒是String.format方法的参数。它们对应于格式字符串中的"%02d“短语。当你调用这个方法时,所有的参数都需要在()中。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28710562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档