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 : maoning20080808@163.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("确定") } } } } }