android compose TimePicker 时间选择器 使用package com.wn.androidcomposedemo1.basegoogle import android.os.Bundle import android.util.Log import android.widget.Space import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.width import androidx.compose.material3.Button import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.material3.TimeInput import androidx.compose.material3.TimePicker import androidx.compose.material3.rememberTimePickerState import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import com.wn.androidcomposedemo1.ui.theme.AndroidComposeDemo1Theme import java.util.Calendar /** * Author : wn * Email : maoning20080808163.com * Date : 2026/6/28 20:16 * Description : 时间选择器 */ class TimeActivity : ComponentActivity(){ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { AndroidComposeDemo1Theme() { Surface( modifier Modifier.fillMaxSize(), color MaterialTheme.colorScheme.background ) { TimeDemo() } } } } Composable fun TimeDemo(){ Column() { DialExample( onConfirm { Log.d(AAA, 点击确认) }, onDismiss { Log.d(AAA, 点击取消) } ) Spacer(Modifier.height(20.dp)) Text(输入时间选择器) InputExample( onConfirm { Log.d(AAA, 点击确认) }, onDismiss { Log.d(AAA, 点击取消) } ) } } OptIn(ExperimentalMaterial3Api::class) Composable fun DialExample( onConfirm: () - Unit, onDismiss: () - Unit ){ val currentTime Calendar.getInstance() val timePickerState rememberTimePickerState( initialHour currentTime.get(Calendar.HOUR_OF_DAY), initialMinute currentTime.get(Calendar.MINUTE), is24Hour true ) Column() { TimePicker( state timePickerState ) Row( modifier Modifier.fillMaxWidth(), horizontalArrangement Arrangement.Center ) { Button(onClick onDismiss) { Text(取消) } Spacer(Modifier.width(20.dp)) Button(onClick onConfirm) { Text(确定) } } } } OptIn(ExperimentalMaterial3Api::class) Composable fun InputExample( onConfirm: () - Unit, onDismiss: () - Unit ){ val currentTime Calendar.getInstance() val timePickerState rememberTimePickerState( initialHour currentTime.get(Calendar.HOUR_OF_DAY), initialMinute currentTime.get(Calendar.MINUTE), is24Hour true ) Column() { TimeInput( state timePickerState, ) Row( modifier Modifier.fillMaxWidth(), horizontalArrangement Arrangement.Center ) { Button(onClick onDismiss) { Text(取消) } Button(onClick onConfirm) { Text(确定) } } } } }