Android开发之DatePicker和TimePicker的用法

2014-08-02 11:44:59|?次阅读|上传:huigezrx【已有?条评论】发表评论

关键词:Java, Android, 界面设计|来源:唯设编程网

在Android开发的应用程序中,通常都会有时间和日期选择的需求,本文就日期选择控件DatePicker和时间选择控件TimePicker的基本使用方法进行介绍,并给出了具体的实现例子。

一. 基本概念

1. DatePicker是一个日期选择控件,它继承自FrameLayout类,用来实现的主要功能是使用护可以方便选择日期。如果要捕获用户修改DataPicker控件中的数据改变事件,需要为DatePicker添加OnDateChangedListener监听器。

2. TimePicker是一个时间选择控件,也继承自FrameLayout类。时间选择控件向用户显示一天中的时间(可以为24小时,也可以为AM/PM制),并允许用户进行选择。如果要捕获用户修改时间数据的事件,便需要为TimePicker添加OnTimeChangedListener监听器。

二. 实例分析

下面是一个具体的日期/时间选择示例,首先给出Activity布局的XML代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <DatePicker android:id="@+id/datePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        style="@style/AppTheme" />
    <EditText android:id="@+id/dateEt"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:cursorVisible="false"
        android:editable="false"/>
    <TimePicker android:id="@+id/timePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"/>
    <EditText android:id="@+id/timeEt"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:cursorVisible="false"
        android:editable="false"/>
</LinearLayout>

这个Activity使用了最简单的LinearLayout作为布局方式,其中包含了1个DatePicker控件,2个EditText控件和一个TimePicker,DatePicker控件用来实现日期选择,TimePicker用来实现时间选择,EditText分别用来显示用户选择的日期和时间。

下面是对应的Activity类实现代码:

package com.example.myapplication2.app;

import java.util.Calendar;

import android.app.Activity;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TimePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.TimePicker.OnTimeChangedListener;

public class MainActivity extends Activity {
    private EditText dateEt=null;
    private EditText timeEt=null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        dateEt=(EditText)findViewById(R.id.dateEt);
        timeEt=(EditText)findViewById(R.id.timeEt);
        DatePicker datePicker=(DatePicker)findViewById(R.id.datePicker);
        TimePicker timePicker=(TimePicker)findViewById(R.id.timePicker);

        Calendar calendar=Calendar.getInstance();
        int year=calendar.get(Calendar.YEAR);
        int monthOfYear=calendar.get(Calendar.MONTH);
        int dayOfMonth=calendar.get(Calendar.DAY_OF_MONTH);
        datePicker.init(year, monthOfYear, dayOfMonth, new OnDateChangedListener(){

            public void onDateChanged(DatePicker view, int year,
                                      int monthOfYear, int dayOfMonth) {
                dateEt.setText("您选择的日期是:"+year+"年"+(monthOfYear+1)+"月"+dayOfMonth+"日。");
            }

        });

        timePicker.setOnTimeChangedListener(new OnTimeChangedListener(){

            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                timeEt.setText("您选择的时间是:"+hourOfDay+"时"+minute+"分。");
            }

        });
    }
}

本示例程序比较简单,所有代码都在Activity的onCreate函数中完成,其中分别添加了DateTicker控件的OnDateChangedListener监听器和TimePicker控件的OnTimeChangedListener监听器,以实现当用户改变日期和时间的时候将结果下是在下方的EditText控件中。

最终实现的效果如下:

Android开发之DatePicker和TimePicker的用法

发表评论0条 】
网友评论(共?条评论)..
Android开发之DatePicker和TimePicker的用法