当前位置:操作系统 > 安卓/Android >>

android DatepickerDialog(日期选择器)的使用

日期和时间选择对话框,首先是要获得当前时间,这里用 java类中的Calendar来获得日期和时间(也可以用Date,但是不提倡,Date部分方法已经注释为过时), Calendar是一个抽象类,是通过getInstance()来获得实例

日期和时间选择对话框无需在像前面一样借组与AlertDialog.Builder来作为内容的载体,有直接的Dialog,其实源码里面已经包括了Builder。

1、DatePickerDialog 是日期Dialog,如下建立

[java]
dialog = new DatePickerDialog(this, 
                        dateListener, 
                        calendar.get(Calendar.YEAR), 
                        calendar.get(Calendar.MONTH), 
                        calendar.get(Calendar.DAY_OF_MONTH)); 
this 表示当前 Acitivity,表示这是当前Acitivity的对话框

dateListener为产生日期事件的监听器,这里是通过DatePickerDialog.OnDateSetListener来获得,代码如下

[java]
DatePickerDialog.OnDateSetListener dateListener =  
    new DatePickerDialog.OnDateSetListener() { 
        @Override 
        public void onDateSet(DatePicker datePicker,  
                int year, int month, int dayOfMonth) { 
            EditText editText =  
                (EditText) findViewById(R.id.editText); 
             //Calendar月份是从0开始,所以month要加1 
            editText.setText("你选择了" + year + "年" +  
                    (month+1) + "月" + dayOfMonth + "日"); 
        } 
    }; 
 
 

这里注意的是calendar.getCalendar(Calendar.MONTH), Calendar类中是从0开始取月份的,但是这里DatePickerDialog已经做了处理。

 2、TimePickerDialog为时间选择对话框,实现代码如下:

[java]
dialog = new TimePickerDialog(this, timeListener, 
                            calendar.get(Calendar.HOUR_OF_DAY), 
                            calendar.get(Calendar.MINUTE), 
                            false);   //是否为二十四制 
 

timeListener 是一个TimePickerDialog.OnTimeSetListener 实例。

 

效果图如下:
   \

 \

 

 这是日期选择对话框                                                                        这是时间选择对话框

 

实现步骤:

第一步:一个用来显示选择的内容的输入框和两个用来显示日期和时间的按钮

res/layout/date_time_dialog_layout.xml

[xhtml] <?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" 
    > 
    <EditText android:id="@+id/editText" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:editable="false" 
        android:cursorVisible="false"/> 
    <Button android:id="@+id/btnDate" 
        android:text="显示日期选择对话框" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"/> 
    <Button android:id="@+id/btnTime" 
        android:text="显示时间选择对话框" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" /> 
</LinearLayout> 

 

第二步:

在DateTimeDialogActivity的OnCreate方法里面要对两个button进行单击事件处理,OnCreateDialog来处理产生对话框

src/com/dialog/activity/DateTimeDialogActivity.java

[java] package com.dialog.activity; 
 
import java.util.Calendar; 
 
import android.app.Activity; 
import android.app.DatePickerDialog; 
import android.app.Dialog; 
import android.app.TimePickerDialog; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.DatePicker; 
import android.widget.EditText; 
import android.widget.TimePicker; 
 
public class DateTimeDialogActivity extends Activity { 
     
    private final int DATE_DIALOG = 1; 
     
    private final int TIME_DIALOG = 2; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.date_time_dialog_layout); 
         
        View.OnClickListener dateBtnListener =  
            new BtnOnClickListener(DATE_DIALOG); 
       
        Button btnDate = (Button) findViewById(R.id.btnDate); 
   

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,