Desenvolvi um aplicativo simples de seleção de tempo no jetpack compose. Consiste em um texto que pode ser composto e um seletor de tempo. O texto exibe a hora selecionada. No entanto, não exibe se é AM ou PM.
Aqui está um detalhamento do aplicativo. Consiste em uma coluna que contém um texto que pode ser composto e um seletor de horário. Existem três variáveis. Um mantém a hora atual usando o calendário integrado, outro mantém o estado do seletor de hora e o último formata a hora a partir do seletor de hora.
Agora aqui está o código:
// App Layout
Column(
modifier = Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center,
) {
// Variable That Stores The Current Time
val currentTime = Calendar.getInstance()
// Variable That Stores Time Picker State
val timePickerState =
rememberTimePickerState(
initialHour = currentTime[Calendar.HOUR_OF_DAY],
initialMinute = currentTime[Calendar.MINUTE],
is24Hour = false,
)
// Variable That Stores The Formatted Time
val formattedTime =
"%02d:%02d".format(
timePickerState.hour,
timePickerState.minute,
)
// Text That Displays The Selected Time
Text(text = formattedTime)
// Time Picker
TimePicker(
state = timePickerState,
)
}
Conforme declarado acima, não consigo descobrir como adicionar AM ou PM ao texto que pode ser composto ou até mesmo salvar a preferência do usuário de AM ou PM. Existe um parâmetro para o timePickerState chamado is24Hour
, porém é um booleano e causará um travamento quando adicionado a uma string.