Time Picker
可以用TimePicker窗口小部件來選擇時間,這個小部件允許用戶選擇小時和分鐘。
本教程裡,點擊界面上的按鈕,將彈出一個浮動的時間選擇器對話框TimePickerDialog。當用戶設置時間後,TextView將顯示剛設的時間。
創建一個公車:HelloTimePicker.
打開res/layout/main.xml 並修改如下:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="vertical">
- <TextView android:id="@+id/timeDisplay"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text=""/>
- <Button android:id="@+id/pickTime"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Change the time"/>
- </LinearLayout>
這是一個基本的LinearLayout布局,裡面的TextView顯示時間,點擊Button則打開TimePickerDialog時間選擇器對話框。
打開HelloTimePicker.java 並添加下列成員變量:
- private TextView mTimeDisplay;
- private Button mPickTime;
-
- private int mHour;
- private int mMinute;
-
- static final int TIME_DIALOG_ID = 0;
這些成員變量是布局元素、時分。TIME_DIALOG_ID 是靜態整型值,作為時間選擇器對話框的ID。
修改onCreate() 如下:
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
- // capture our View elements
- mTimeDisplay = (TextView) findViewById(R.id.timeDisplay);
- mPickTime = (Button) findViewById(R.id.pickTime);
-
- // add a click listener to the button
- mPickTime.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- showDialog(TIME_DIALOG_ID);
- }
- });
-
- // get the current time
- final Calendar c = Calendar.getInstance();
- mHour = c.get(Calendar.HOUR_OF_DAY);
- mMinute = c.get(Calendar.MINUTE);
-
- // display the current date
- updateDisplay();
- }
首先,加載main.xml布局文件,然後調用findViewById(int)來獲得對TextView和Button的引用,接著給Button添加一個點擊事件監聽器View.OnClickListener,因此當點擊Button後,回調函數showDialog(int)(參數是對話框ID)將被調用來顯示時間選擇器對話框。
showDialog(int)方法讓當前Activity管理對話框的生命周期,同時調用onCreateDialog(int) 回調函數顯示對話框。
在設置點擊事件監聽器以後,創建一個Calendar對象,讀取當前小時、分鐘。最後,調用updateDisplay() 方法,讓TextView顯示當前時間。