Android SDK Tutorials系列 - Hello Views - Time Picker
Android SDK Tutorials系列 - Hello Views - Time Picker
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显示当前时间。
|
评论暂时关闭