android日历和时间选择器 普通选择和dialog显示选择

来源:互联网 发布:淘宝女装店铺推广方案 编辑:程序博客网 时间:2024/04/29 18:52

效果展示:





一:目录结构


二:src源文件

MainActivity.java文件:

package com.peng.testdate;import java.util.Calendar;import android.media.audiofx.Visualizer.OnDataCaptureListener;import android.os.Bundle;import android.widget.DatePicker;import android.widget.DatePicker.OnDateChangedListener;import android.widget.TimePicker;import android.widget.TimePicker.OnTimeChangedListener;import android.app.Activity;import android.app.DatePickerDialog;import android.app.DatePickerDialog.OnDateSetListener;import android.app.TimePickerDialog;import android.app.TimePickerDialog.OnTimeSetListener;/* * 日历和时间练习 */public class MainActivity extends Activity implements OnTimeChangedListener {// 声明控件private DatePicker datePicker;private TimePicker timePicker;// 声明数据private int year;private int month;private int day;private int hour;private int minutes;// 日历private Calendar calendar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initViews();// 初始化控件// 通过Calendar类获取系统当前的时间calendar = Calendar.getInstance();year = calendar.get(Calendar.YEAR);month = calendar.get(Calendar.MONTH) + 1;// 注意这里获取到的月份比现实中少一day = calendar.get(Calendar.DAY_OF_MONTH);// 注意参数:获取的是当前月的具体哪一天hour = calendar.get(Calendar.HOUR_OF_DAY);// 注意参数:获取当天具体的hourminutes = calendar.get(Calendar.MINUTE);// 为控件添加监听事件setViewsAdapter();// 初始化datePickerinitViews_DatePicker();/**/// 对话框形式的datePicker---(测试的时候把注释去掉,与getTimePicker_Dialog().show()不要同时去掉注释)// getDatePicker_Dialog().show();// 对话框行驶的timePicker---(测试的时候把注释去掉,与getDatePicker_Dialog().show()不要同时去掉注释)// getTimePicker_Dialog().show();/**/}// 初始化控件private void initViews() {datePicker = (DatePicker) findViewById(R.id.datePicker1);timePicker = (TimePicker) findViewById(R.id.timePicker1);}// 初始化控件--DatePicker比较特殊,init中的参数添加监听事件private void initViews_DatePicker() {// 初始化datePicker(注意第二个参数传入的是没有进行+1操作的Month值)datePicker.init(year, calendar.get(Calendar.MONTH), day,new OnDateChangedListener() {@Overridepublic void onDateChanged(DatePicker view, int year,int monthOfYear, int dayOfMonth) {MainActivity.this.setTitle(year + "年 "+ (monthOfYear + 1) + "月 " + dayOfMonth + "日");}});}// 为控件添加监听事件private void setViewsAdapter() {timePicker.setOnTimeChangedListener(this);}// timePicker的监听事件@Overridepublic void onTimeChanged(TimePicker view, int hourOfDay, int minute) {MainActivity.this.setTitle("修改后的时间:" + hourOfDay + "时 " + minute + "分");}// 对话框形式的datePickerprivate DatePickerDialog getDatePicker_Dialog() {DatePickerDialog dpd = new DatePickerDialog(MainActivity.this,new OnDateSetListener() {@Overridepublic void onDateSet(DatePicker view, int year,int monthOfYear, int dayOfMonth) {MainActivity.this.setTitle(year + "年 "+ (monthOfYear + 1) + "月 " + dayOfMonth + "日");}}, year, month - 1, day);return dpd;}// 对话框形式的timePickerprivate TimePickerDialog getTimePicker_Dialog() {TimePickerDialog tpd = new TimePickerDialog(MainActivity.this,new OnTimeSetListener() {@Overridepublic void onTimeSet(TimePicker view, int hourOfDay,int minute) {MainActivity.this.setTitle("修改后的时间:" + hourOfDay + "时 "+ minute + "分");}}, hour, minutes, true);return tpd;}}
layout_main.xml文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <TimePicker        android:id="@+id/timePicker1"        android:layout_width="match_parent"        android:layout_height="wrap_content" />    <DatePicker        android:id="@+id/datePicker1"        android:layout_width="wrap_content"        android:layout_height="wrap_content" /></LinearLayout>

三:注意事项

Calendar获取系统当前日期:

测试dialog显示时:


DatePicker初始化函数及其参数形式内置监听:

TimePickerDialog函数参数:


1 0
原创粉丝点击