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 }
效果圖: