TimeUnit Cannot resolve symbol
android, android-studio, java
Solution
You're missing an import. I'm not familiar with the libraries you are using, but they probably expect a java.util.concurrent.TimeUnit. If so, add `import java.util.concurrent.TimeUnit;` to your imports list.
EDIT-
Ah, yes. You also have several missing/misplaced parenthesis. Compare to this:
@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);
}
The idea here is that the hours, minutes and seconds you are passing in are parameters to the String.format method. They correspond to the "%02d" phrases in the format string. All the parameters need to be in the ( )'s when you call the method.
Problem
I am trying to make a basic countdown timer. I'm going to be honest I got most of this through a tutorial so I don't fully understand the workings of it but I've been trying for hours to find an answer and I don't know where else to look. I am getting a 'Cannot resolve symbol' at the bottom after TimeUnit. For example: MILLISECONDS, SECONDS, MINUTES. ``` 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!"); } } } ``` I am all for an easier more beginner way of doing this if it exists. Thanks for any help