要以编程方式设置TimePickerDialog显示的时间,您需要使用Calendar对象来设置时间,并将其转换为小时和分钟。
以下是一个示例代码,演示如何使用Calendar对象和TimePickerDialog来设置时间:
import android.app.TimePickerDialog
import android.os.Bundle
import android.widget.Button
import android.widget.TimePicker
import androidx.appcompat.app.AppCompatActivity
import java.util.*
class MainActivity : AppCompatActivity() {
private lateinit var button: Button
private lateinit var calendar: Calendar
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button = findViewById(R.id.button)
calendar = Calendar.getInstance()
button.setOnClickListener {
val hour = calendar.get(Calendar.HOUR_OF_DAY)
val minute = calendar.get(Calendar.MINUTE)
val timePickerDialog = TimePickerDialog(
this,
TimePickerDialog.OnTimeSetListener { _: TimePicker, selectedHour: Int, selectedMinute: Int ->
calendar.set(Calendar.HOUR_OF_DAY, selectedHour)
calendar.set(Calendar.MINUTE, selectedMinute)
val formattedTime = String.format("%02d:%02d", selectedHour, selectedMinute)
button.text = formattedTime
},
hour,
minute,
false
)
timePickerDialog.show()
}
}
}
在这个例子中,我们首先获取当前的小时和分钟,并将它们传递给TimePickerDialog。当用户选择时间后,我们使用OnTimeSetListener来获取用户选择的小时和分钟。然后,我们将这些值设置回Calendar对象中,并根据需要格式化时间并设置在按钮中显示。
这样,您就可以以编程方式设置TimePickerDialog显示的时间,并确保它正确显示。