Android TimePicker是一个用户界面控件,用于以24小时格式或AM / PM模式选择时间。它用于确保用户在我们的应用程序中选择当天的有效时间。
在android中,TimePicker有两种模式,一种是时钟模式,另一种是微调器模式。
我们可以在XML布局中手动使用TimePicker,也可以在Kotlin文件中以编程方式创建它。在本文中,我们应该在XML布局中使用TimePicker小部件。
首先,我们按照以下步骤创建一个新项目:
- 单击文件,然后单击新建=>新建项目。
- 之后,包括Kotlin支持,然后单击下一步。
- 根据方便选择最小的SDK,然后单击下一步。
- 然后选择清空活动=>下一个=>完成。
具有时钟模式的Android TimePicker
我们可以使用android:timePickerMode仅显示时钟视图。在下面的示例中,我们在时钟模式下使用TimePicker。
上面的TimePicker代码可以在这样的android应用程序中看到
具有Spinner模式的Android TimePicker
我们还可以通过使用android:timePickerMode属性以微调器格式使用TimePicker。
上面的TimePicker代码可以在这样的android应用程序中看到
TimePicker控件的不同属性–
XML Attributes | Description |
---|---|
android:id | Used to uniquely identify the control. |
android:timePickerMode | Used to specify the mode of TimePickerpicker(spinner or clock) |
android:background | Used to set background color of the Text View. |
android:padding | Used to set the padding from left, right, top and bottom. |
android:visibility | Used to specify the visibility of the view. |
在activity_main.xml中使用Clock TimePicker
在此文件中,我们将添加TimePicker和TextView小部件并设置它们的属性,以便可以在kotlin文件中对其进行访问。
在activity_main.xml中使用Spinner TimePicker
在此文件中,我们将添加TimePicker和TextView小部件并设置它们的属性,以便可以在kotlin文件中对其进行访问。
修改字符串.xml文件以添加字符串数组
在这里,我们将指定活动的名称。
TimePickerInKotlin
在MainActivity.kt文件中访问TimePicker
首先,我们定义一个函数OnClickTime()并从MainActivity中调用。
private fun OnClickTime()
然后,我们声明两个变量的TextView和timePicker访问使用他们的ID从XML布局窗口小部件。
val textView = findViewById(R.id.textView)
val timePicker = findViewById(R.id.timePicker)
package com.geeksforgeeks.myfirstkotlinapp
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.ViewGroup
import android.widget.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
OnClickTime()
}
private fun OnClickTime() {
val textView = findViewById(R.id.textView)
val timePicker = findViewById(R.id.timePicker)
timePicker.setOnTimeChangedListener { _, hour, minute -> var hour = hour
var am_pm = ""
// AM_PM decider logic
when {hour == 0 -> { hour += 12
am_pm = "AM"
}
hour == 12 -> am_pm = "PM"
hour > 12 -> { hour -= 12
am_pm = "PM"
}
else -> am_pm = "AM"
}
if (textView != null) {
val hour = if (hour < 10) "0" + hour else hour
val min = if (minute < 10) "0" + minute else minute
// display format of time
val msg = "Time is: $hour : $min $am_pm"
textView.text = msg
textView.visibility = ViewGroup.VISIBLE
}
}
}
}
AndroidManifest.xml文件