Android中日期与时间设置控件的使用


1、日期设置控件:DatePickerDialog

2、时间设置控件:TimePickerDialog

 

实例代码

1、页面添加两个Button,单击分别显示日期设置控件和时间设置控件,还是有TextView控件,用于显示设置后的系统时间

2、布局文件代码:main.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"
    >
<TextView  android:id="@+id/dateAndTime"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
<Button    android:id="@+id/setDate"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Set the Date"></Button>
<Button    android:id="@+id/setTime"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Set the Time"></Button>
</LinearLayout>
3、Java代码

package yyl.android;

import java.text.DateFormat;
import java.util.Calendar;
import java.util.Locale;

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

public class ChronoDemo extends Activity {
   //获取日期格式器对象
    DateFormat fmtDateAndTime = DateFormat.getDateTimeInstance();
    //定义一个TextView控件对象
    TextView dateAndTimeLabel = null;
    //获取一个日历对象
    Calendar dateAndTime = Calendar.getInstance(Locale.CHINA);
   
   
    //当点击DatePickerDialog控件的设置按钮时,调用该方法
    DatePickerDialog.OnDateSetListener d = new DatePickerDialog.OnDateSetListener()
    {
        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
            //修改日历控件的年,月,日
            //这里的year,monthOfYear,dayOfMonth的值与DatePickerDialog控件设置的最新值一致
            dateAndTime.set(Calendar.YEAR, year);
            dateAndTime.set(Calendar.MONTH, monthOfYear);
            dateAndTime.set(Calendar.DAY_OF_MONTH, dayOfMonth);   
            //将页面TextView的显示更新为最新时间
            updateLabel();           
        }       
    };
   


    TimePickerDialog.OnTimeSetListener t = new TimePickerDialog.OnTimeSetListener() {
       
        //同DatePickerDialog控件
        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            dateAndTime.set(Calendar.HOUR_OF_DAY, hourOfDay);
            dateAndTime.set(Calendar.MINUTE, minute);
            updateLabel();
           
        }
    };
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        //得到页面设定日期的按钮控件对象
        Button dateBtn = (Button)findViewById(R.id.setDate);
        //设置按钮的点击事件监听器
        dateBtn.setOnClickListener(new View.OnClickListener() {
           
            @Override
            public void onClick(View v) {
                //生成一个DatePickerDialog对象,并显示。显示的DatePickerDialog控件可以选择年月日,并设置
                new DatePickerDialog(ChronoDemo.this,
                        d,
                        dateAndTime.get(Calendar.YEAR),
                        dateAndTime.get(Calendar.MONTH),
                        dateAndTime.get(Calendar.DAY_OF_MONTH)).show();               
            }
        });
       
        Button timeBtn = (Button)findViewById(R.id.setTime);
        timeBtn.setOnClickListener(new View.OnClickListener() {
           
            //同上原理
            @Override
            public void onClick(View v) {
                new TimePickerDialog(ChronoDemo.this,
                        t,
                        dateAndTime.get(Calendar.HOUR_OF_DAY),
                        dateAndTime.get(Calendar.MINUTE),
                        true).show();
               
            }
        });
       
        dateAndTimeLabel=(TextView)findViewById(R.id.dateAndTime);
       
        updateLabel();
    }
   
    //更新页面TextView的方法
    private void updateLabel() {
        dateAndTimeLabel.setText(fmtDateAndTime
        .format(dateAndTime.getTime()));
        }
}

相关内容