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 来演示一下吧

  1. 创建一个 空的 Android 项目 cn.twle.android.TimePicker

  2. 修改 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 来演示下如何获取它的值

  1. 复用上面的 demo

  2. 修改 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();
                }
            });
        }
    
    }
    

Android 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.