新建一个activity,命名为:TimePickerActivity

public class TimePickerActivity extends AppCompatActivity implements View.OnClickListener, TimePickerDialog.OnTimeSetListener {
   private TextView tv_time;
   private TimePicker tp_time;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_time_picker);
       tv_time = findViewById(R.id.tv_time);
       tp_time = findViewById(R.id.tp_time);
       findViewById(R.id.btn_ok).setOnClickListener(this);
       findViewById(R.id.btn_time).setOnClickListener(this);
   }

   @Override
   public void onClick(View v) {
       if (v.getId() == R.id.btn_time) {
           Calendar calendar = Calendar.getInstance();
           TimePickerDialog dialog = new TimePickerDialog(this, this,
                   calendar.get(Calendar.HOUR_OF_DAY),
                   calendar.get(Calendar.MINUTE), true);
           dialog.show();
       } else if (v.getId() == R.id.btn_ok) {
           String desc = String.format("您选择的时间是%d时%d分", tp_time.getCurrentHour(), tp_time.getCurrentMinute());
           tv_time.setText(desc);
       }
   }

   @Override
   public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
       String desc = String.format("您选择的时间是%d时%d分", hourOfDay, minute);
       tv_time.setText(desc);
   }
}

TimePickerActivity 对应的xml文件,activity_time_picker 如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="5dp"
    android:orientation="vertical">

    <Button
        android:id="@+id/btn_time"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="请选择时间"
        android:textSize="20sp" />

    <TimePicker
        android:id="@+id/tp_time"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:timePickerMode="spinner" />

    <Button
        android:id="@+id/btn_ok"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="确定"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/tv_time"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="17sp"
        android:padding="5dp" />

</LinearLayout>

时间选择器 TimePicker 默认显示的是时钟样式

  • 在xml 中 通过 timePickerMode 设置不同显示样式
    • 取值为:clock 表示时钟风格
    • 取值为:spinner 表示下拉框风格

展示的效果图如下:

  • 左边的图代表了时钟风格
  • 右边的图代表了下拉框风格