Android Chronometer: Time Format Issue
Solution 1:
I believe what you're experiencing isn't related to "different layout xml files". It seems to be an Android bug, probably this one: Chronometer in Android 4.2.
To check that I've done a couple of tests (with only one layout) on a normal screen size phone (Android 4.2.2
) and Samsung Galaxy Tab 7 (Android 4.0.3
). I get the following string format of the returned value of chrono.getText().toString()
Android 4.0.3:
"mm:ss"
Android 4.2.2:
"m:ss"
which corresponds to the reported bug.
Assuming that your Galaxy Tab 7 has Android 4.2
explains why the Chronometer doesn't stop and keeps going ahead: the condition currentTime.equals("00:20")
is false
because you compare two strings of different format, "m:ss"
with "mm:ss"
.
If my assumption is wrong and it does not regard to the Android
version yet there is a solution to handle it.
Answer : I recommend formatting currentTime
in a certain manner, e.g. "mm:ss"
and then compare the formatted time with "00:20"
. The following code snippet uses SimpleDateFormat:
chrono.setOnChronometerTickListener(newOnChronometerTickListener() {
publicvoidonChronometerTick(Chronometer chronometer) {
String currentTime= chrono.getText().toString();
Date date = null;
try {
date = newSimpleDateFormat("mm:ss").parse(currentTime);
} catch (ParseException e) {
e.printStackTrace();
}
String newTime = newSimpleDateFormat("mm:ss").format(date);
...
Now do the comparison using newTime
:
if(newTime.equals("00:20")) {
// your code
}
Post a Comment for "Android Chronometer: Time Format Issue"