Android TimePicker

分享到:

TimePicker控件提供一个时间选择器,用户通过TimePicker可以获取或设置"小时","分钟"的具体数值并且支持以24小时制显示时间。交互非常友好只需上下滑动TimePicker控件上的时间即可完成设置,与其相关还有另外一个控件DatePicker。下面通过一个例子来了解TimePicker具体使用方法。

本例演示如何从TimePicker 控件获取时间,先看下效果,如下图:

TimePicker实例
TimePicker实例

XMl布局代码:

<RelativeLayout 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">

         <TimePicker
          android:id="@+id/timePicker1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_alignParentTop="true"
          android:layout_centerHorizontal="true"/>
  
  		<Button
          android:id="@+id/button1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_below="@+id/timePicker1"
          android:layout_centerHorizontal="true"
          android:text="获取时间" />
  
</RelativeLayout>

java源码:

package com.my.androidtest;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TimePicker;
import android.widget.Toast;

public class TimePickerActivity extends Activity {
          TimePicker timePicker=null;
          Button button=null;
          @Override
          protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_time_picker);
  
          timePicker=(TimePicker)this.findViewById(R.id.timePicker1);
          button=(Button)this.findViewById(R.id.button1);
          button.setOnClickListener(new OnClickListener(){
          @Override
          public void onClick(View arg0) {
          int curHour=timePicker.getCurrentHour();
          int curMinute=timePicker.getCurrentMinute();
          Toast.makeText(TimePickerActivity.this, "TimePicker时间:"+curHour+"时 "+curMinute+ "分", Toast.LENGTH_LONG).show();
          } 
          });
          }
}

简单说明一下,在这个例子中我们用到了TimePicker控件提供的两个方法:
getCurrentHour(),获取TimePicker当前小时(0-23)具体值与控件上的"AM"与"PM"两个参数有关,表示上午时间和下午时间
getCurrentMinute(),获取TimePicker当前分钟(0-59)
要注意的是无论是当前小时还是当前分钟指的是TimePicker控件上此时此刻所显示的时间,并不是指系统时间。


上面的例子演示了如何获取TimePicker控件上的时间,有些时候我们需要把一个指定的时间设置到TimePicker上面去,如何完成这个操作请看下面这个例子:

XML布局不变沿用上一个例子的,java源码在原基本上加入以下几行代码:

//设置当前小时为20
timePicker.setCurrentHour(20);

//设置当前分钟为10
timePicker.setCurrentMinute(10);

//设置为24小时制
timePicker.setIs24HourView(true);

加入上面几行代码运行之后可以看到TimePicker已经按我们的想法显示在20:10这个时间上,同时会发现后面的"AM","PM"选项消失了,原因是我们设置了24小时制。效果如下图:

TimePicker实例

如果我们把timePicker.setIs24HourView(true)这行代码注示掉,或者把参数从"true"改为"false"这时TimePicker控件不再以24小时制显示。要注意的是,如果不以24小时制显示时间,那么TimePicker小时栏里只有1-12这几个数字,同时会出现"AM"和"PM"选项TimePicker默认情况就是这种格式。我们设置的20:10 将被表示成8:10 PM 意思就是下午的8点10分,效果如下图:

TimePicker实例

在这个例子中我们为TimePicker设置指定的时间,用到3个方法:
timePicker.setCurrentHour(int),设置小时(0-23),最终显示在TimePicker上的数字与是否使用24小时制有关
timePicker.setCurrentMinute(int),设置分钟(0-59)
timePicker.setIs24HourView(boolean),设置是否以24小时制显示,如果开启则不显示"AM与PM"

TimePicker控件常用方法整理如下:

public Integer getCurrentHour () 获取当前时间的小时部分(0-23)
public Integer getCurrentMinute () 获取当前时间的分钟部分(0-59)
public boolean is24HourView () 获取当前系统设置是否是24小时制,返回"true"或"false"
public void setCurrentHour (Integer currentHour) 设置当前小时(0-23)
public void setCurrentMinute (Integer currentMinute) 设置当前分钟(0-23)
public void setIs24HourView (Boolean is24HourView) 设置是24小时制还是上午/下午制,"true"表示24小时制,"false"表示"上午,下午"
public void setOnTimeChangedListener (TimePicker.OnTimeChangedListener onTimeChangedListener) 设置TimePicker时间发生变化的监听事件
public void setEnabled (boolean enabled) 设置TimePicker控件是否可用,"true"为可用,"false"为不可用
昵    称:
验证码:

相关文档:

Android控件
Android基础知识
Android组件
Android实例