Android SDK Tutorials系列 - Hello Views - Time Picker


Time Picker

可以用TimePicker窗口小部件来选择时间,这个小部件允许用户选择小时和分钟。

本教程里,点击界面上的按钮,将弹出一个浮动的时间选择器对话框TimePickerDialog。当用户设置时间后,TextView将显示刚设的时间。

创建一个公车:HelloTimePicker.

打开res/layout/main.xml 并修改如下:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="wrap_content"  
  4.     android:layout_height="wrap_content"  
  5.     android:orientation="vertical">  
  6.     <TextView android:id="@+id/timeDisplay"  
  7.         android:layout_width="wrap_content"  
  8.         android:layout_height="wrap_content"  
  9.         android:text=""/>  
  10.     <Button android:id="@+id/pickTime"  
  11.         android:layout_width="wrap_content"  
  12.         android:layout_height="wrap_content"  
  13.         android:text="Change the time"/>  
  14. </LinearLayout>  

这是一个基本的LinearLayout布局,里面的TextView显示时间,点击Button则打开TimePickerDialog时间选择器对话框。

打开HelloTimePicker.java 并添加下列成员变量:

  1. private TextView mTimeDisplay;  
  2. private Button mPickTime;  
  3.   
  4. private int mHour;  
  5. private int mMinute;  
  6.   
  7. static final int TIME_DIALOG_ID = 0;  

这些成员变量是布局元素、时分。TIME_DIALOG_ID 是静态整型值,作为时间选择器对话框的ID。

修改onCreate() 如下:

  1. @Override  
  2. protected void onCreate(Bundle savedInstanceState) {  
  3.     super.onCreate(savedInstanceState);  
  4.     setContentView(R.layout.main);  
  5.   
  6.     // capture our View elements   
  7.     mTimeDisplay = (TextView) findViewById(R.id.timeDisplay);  
  8.     mPickTime = (Button) findViewById(R.id.pickTime);  
  9.   
  10.     // add a click listener to the button   
  11.     mPickTime.setOnClickListener(new View.OnClickListener() {  
  12.         public void onClick(View v) {  
  13.             showDialog(TIME_DIALOG_ID);  
  14.         }  
  15.     });  
  16.   
  17.     // get the current time   
  18.     final Calendar c = Calendar.getInstance();  
  19.     mHour = c.get(Calendar.HOUR_OF_DAY);  
  20.     mMinute = c.get(Calendar.MINUTE);  
  21.   
  22.     // display the current date   
  23.     updateDisplay();  
  24. }  

首先,加载main.xml布局文件,然后调用findViewById(int)来获得对TextView和Button的引用,接着给Button添加一个点击事件监听器View.OnClickListener,因此当点击Button后,回调函数showDialog(int)(参数是对话框ID)将被调用来显示时间选择器对话框。

showDialog(int)方法让当前Activity管理对话框的生命周期,同时调用onCreateDialog(int) 回调函数显示对话框。

在设置点击事件监听器以后,创建一个Calendar对象,读取当前小时、分钟。最后,调用updateDisplay() 方法,让TextView显示当前时间。

  • 1
  • 2
  • 下一页

相关内容