Есть ли хороший пример Kotlin, как передать значение хронометра в аргумент в виде строки?

У меня есть работающее приложение Chronomer в Android-приложении Kotlin во фрагменте. Когда я нажимаю кнопку паузы или остановки, я хотел бы иметь возможность передать это значение остановленного хронометра в аргумент, а затем отобразить его в другом месте, например: 1m30s.

Есть советы, где искать?

0
0
76
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Решение

Предположим, что в вашем фрагменте 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)
}

Другие вопросы по теме