У меня есть работающее приложение Chronomer в Android-приложении Kotlin во фрагменте. Когда я нажимаю кнопку паузы или остановки, я хотел бы иметь возможность передать это значение остановленного хронометра в аргумент, а затем отобразить его в другом месте, например: 1m30s.
Есть советы, где искать?
Решение
Предположим, что в вашем фрагменте chronometer
— это имя переменной Chronomer
. Когда пользователи нажимают кнопку паузы/остановки, используйте этот код для получения значения хронометра.
// Regex for HH:MM:SS or MM:SS
val regex = "([0-1]?\\d|2[0-3])(?::([0-5]?\\d))?(?::([0-5]?\\d))?"
val pattern = Pattern.compile(regex)
val matcher = pattern.matcher(chronometer.text)
if (matcher.find()) {
val isHHMMSSFormat = matcher.groupCount() == 4
val chronometerValue = if (isHHMMSSFormat) {
val hour = matcher.group(1).toInt()
val minute = matcher.group(2).toInt()
val second = matcher.group(3).toInt()
"${hour}h${minute}m${second}s"
} else {
val minute = matcher.group(1).toInt()
val second = matcher.group(2).toInt()
"${minute}m${second}s"
}
// TODO: Pass the `chronometerValue` into argument
// or anything you want here
Log.i("Chronometer Value", chronometerValue)
}