Android TimePicker 时间选择器
Android TimePicker 是一个时间选择期,主要用于选择时间,可以是 24 小时制或 AM/PM 12 小时制
但一般情况下,我们都是使用 TimePickerDialog
TimePicker
可以使用 <TimePicker>
创建一个 TimePicker
<TimePicker android:layout_width="wrap_content" android:layout_height="wrap_content" />
可以使用属性 android:timePickerMode
设置 TimePicker 的外观,主要有 clock (默认) 和 spinner 两种
我们写一个 demo 来演示一下吧
-
创建一个 空的 Android 项目
cn.twle.android.TimePicker
-
修改
activity_main.xml
添加两个按钮<?xml version="1.0" encoding="utf-8" ?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="8dp" android:orientation="vertical" > <TimePicker android:id="@+id/timepicker" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
运行范例,显示如下
我们将 android:timePickerMode
改成 spinner
,显示效果如下
上面的都是 12 小时制的,我们可以通过 setIs24HourView(true)
方法改成 24 小时制
修改 MainActivity.java
调用 setIs24HourView(true)
方法
package cn.twle.android.timepicker; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TimePicker; import android.widget.Toast; public class MainActivity extends AppCompatActivity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TimePicker timepicker = (TimePicker) findViewById(R.id.timepicker); timepicker.setIs24HourView(true); } }
运行范例,显示如下
我们将 android:timePickerMode
改成 clock
,显示效果如下
TimePicker 属性和事件
属性 | 说明 |
---|---|
android:timePickerMode | 用于设置 TimePicker 的外观,主要有 clock (默认) 和 spinner 两种 |
TimePicker 事件
TimePicker 会在时间改变时触发 TimePicker.OnTimeChangedListener 事件
获得 TimePicker
的值
同 DatePicker
一样,TimePicker
也没有专门的方法用于获取它的值,只能通过 getHour()
和 getMinute()
分别获取
我们写一个 demo 来演示下如何获取它的值
-
复用上面的 demo
-
修改
MainActivity.java
package cn.twle.android.timepicker; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TimePicker; import android.widget.Toast; public class MainActivity extends AppCompatActivity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TimePicker tp_test = (TimePicker) findViewById(R.id.timepicker); tp_test.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() { @Override public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { Toast.makeText(MainActivity.this,"您选择的时间是:"+hourOfDay+"时"+minute+"分!",Toast.LENGTH_SHORT).show(); } }); } }