使用DatePickerDialog、TimePickerDialog

    DatePickerDialog与TimerPicker的功能比较简单,用户也简单,只要如下两步即可。

    ①通过new关键字创建DatePickerDialog、TimePickerDialog实例,调用它们的show()方法即可将日期选择对话框、时间选择对话框显示出来。

    ②为DatePickerDialog、TimePickerDialog绑定监听器,这样可以保证用户通过DatePickerDialog、TimePickerDialog设置事件时触发监听器,从而通过监听器来获取用户设置的事件。

    下面的程序中定义了两个按钮,一个按钮用于打开日期选择对话框,一个用于打开时间对话框。该程序的界面布局文件如下:

   

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center_horizontal"
     >
     <EditText android:id="@+id/show"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:editable="false"/>
     <LinearLayout 
         android:orientation="horizontal"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:gravity="center_horizontal">
         <Button android:id="@+id/dateBn" 
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="设置日期"/>
         <Button android:id="@+id/timeBn" 
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="设置时间"/>   
         
     </LinearLayout>
</LinearLayout>

对应的Activity后台代码文件如下:

package org.crazyit.helloworld;

import java.util.Calendar;

import android.os.Bundle;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TimePicker;

public class DateDialogTest extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.date_dialog_test);
        Button dateBn=(Button)findViewById(R.id.dateBn);
        Button timeBn=(Button)findViewById(R.id.timeBn);
        //为“设置日期”按钮绑定监听器
        dateBn.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Calendar c=Calendar.getInstance();
                //直接创建一个DatePickerDialog对话框实例,并将它显示出来
                new DatePickerDialog(DateDialogTest.this,
                        //绑定监听器
                        new DatePickerDialog.OnDateSetListener() {
                            
                            @Override
                            public void onDateSet(DatePicker view, int year, int month,
                                    int dayOfMonth) {
                                // TODO Auto-generated method stub
                                EditText show=(EditText)findViewById(R.id.show);
                                show.setText("您选择啦:"+year+"年"+(month+1)+"月"+dayOfMonth+"日");
                            }
                        },c.get(Calendar.YEAR),c.get(Calendar.MONTH),c.get(Calendar.DAY_OF_MONTH)).show();
            }
            
        });
        //为“设置时间”按钮绑定监听器
        timeBn.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Calendar c=Calendar.getInstance();
                //创建一个TimePickerDialog实例,并把它显示出来
                new TimePickerDialog(DateDialogTest.this,
                        //绑定监听器
                        new TimePickerDialog.OnTimeSetListener() {
                            
                            @Override
                            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                                // TODO Auto-generated method stub
                                EditText show=(EditText)findViewById(R.id.show);
                                show.setText("您选择了:"+hourOfDay+"时"+minute+"分");
                            }
                        }
                        //设置初始时间
                        ,c.get(Calendar.HOUR_OF_DAY)
                        ,c.get(Calendar.MINUTE)
                        //true表示采用24小时制
                        ,true).show();
            }
            
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.date_dialog_test, menu);
        return true;
    }

}

上面的程序中两段粗体字代码就是创建并显示DatePickerDialog、TimePickerDialog的关键代码。运行上面的程序将会看到如下界面效果。

 

 

posted @ 2013-10-29 16:30  TealerProg  Views(755)  Comments(0Edit  收藏  举报