TimePicker也继承自FrameLayout类。时间选择控件向用户显示一天中的时间(可以为24小时,也可以为AM/PM制),并允许用户进行选择。如果要捕获用户修改时间数据的事件,便需要为TimePicker添加OnTimeChangedListener监听器
一、方法
public int getBaseline ()
返回窗口空间的文本基准线到其顶边界的偏移量。如果这个部件不支持基准线对齐,这个方法返回-1/。
返回值
基准线的偏移量,如果不支持基准线对齐则返回-1。
public Integer getCurrentHour ()
获取当前时间的小时部分。
返回值
当前小时(0-23)
public Integer getCurrentMinute ()
获取当前时间的分钟部分。
返回值
当前分钟。
public boolean is24HourView ()
获取当前系统设置是否是24小时制。
返回值
如果是24小时制返回true,否则返回false。
public void setCurrentHour (Integer currentHour)
设置当前小时。
public void setCurrentMinute (Integer currentMinute)
设置当前分钟(0-59)。
public void setEnabled (boolean enabled)
设置可用的视图状态。可用的视图状态的解释在子类中改变。
参数
enabled 如果可用为true,否则为false。
public void setIs24HourView (Boolean is24HourView)
设置是24小时还是上午/下午制。
参数
is24HourView True表示 24小时制. False表示上午/下午制.
public void setOnTimeChangedListener (TimePicker.OnTimeChangedListener onTimeChangedListener)
设置时间调整事件的回调函数。
参数
onTimeChangedListener 回调函数,不能为空。
二、示例(全局模式)
1、布局文件
1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:orientation="vertical" >
6
7 <TimePicker
8 android:id="@+id/id_timePicker1"
9 android:layout_width="wrap_content"
10 android:layout_height="wrap_content" />
11
12 </LinearLayout>
二、activity
1 package base_ui;
2
3 import java.util.Calendar;
4
5 import com.example.allcode.R;
6
7 import android.app.Activity;
8 import android.app.TimePickerDialog;
9 import android.app.TimePickerDialog.OnTimeSetListener;
10 import android.os.Bundle;
11 import android.text.format.Time;
12 import android.widget.TimePicker;
13 import android.widget.TimePicker.OnTimeChangedListener;
14
15 public class Ui_TimePicker extends Activity{
16 private TimePicker timepicker;
17 private Calendar cal;//显示当前日期
18 private int year;
19 private int month;
20 private int day;
21 private int hour;
22 private int minute;
23
24 @Override
25 protected void onCreate(Bundle savedInstanceState) {
26
27 // TODO Auto-generated method stub
28 super.onCreate(savedInstanceState);
29 setContentView(R.layout.ui_timepickerdialog);
30 timepicker = (TimePicker) findViewById(R.id.id_timePicker1);
31
32 //获取日历的对象
33 cal=Calendar.getInstance();
34 //获取年月日时分秒信息
35 year = cal.get(Calendar.YEAR);
36 month = cal.get(Calendar.MONTH)+1;//注意点 ,要加一
37 day = cal.get(Calendar.DAY_OF_MONTH);
38 hour = cal.get(Calendar.HOUR_OF_DAY);
39 minute = cal.get(Calendar.MINUTE);
40
41 setTitle("选择的时间:"+hour+"时-"+minute+"分");
42 timepicker.setOnTimeChangedListener(new OnTimeChangedListener() {
43
44 @Override
45 public void onTimeChanged(TimePicker view, int hour, int minute) {
46 // TODO Auto-generated method stub
47 setTitle("选择的时间:"+hour+"时-"+minute+"分");
48 }
49 });
50
51
52
53 }
54
55 }
效果图:
三、示例(对话框模式)
对应上述示例42--49行代码
1 new TimePickerDialog(this, new OnTimeSetListener() {
2
3 @Override
4 public void onTimeSet(TimePicker view, int hour, int minute) {
5 // TODO Auto-generated method stub
6 setTitle("选择的时间:"+hour+"时-"+minute+"分");
7 }
8 }, hour, minute, true).show();//前两个参数初始化,第三个参数确定是否显示24小时格式的
9 }
效果图: