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

效果展示:





一:目录结构


二: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;

	@Override
	protected 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);// 注意参数:获取当天具体的hour
		minutes = calendar.get(Calendar.MINUTE);
		// 为控件添加监听事件
		setViewsAdapter();
		// 初始化datePicker
		initViews_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() {
					@Override
					public void onDateChanged(DatePicker view, int year,
							int monthOfYear, int dayOfMonth) {
						MainActivity.this.setTitle(year + "年 "
								+ (monthOfYear + 1) + "月 " + dayOfMonth + "日");
					}
				});
	}

	// 为控件添加监听事件
	private void setViewsAdapter() {
		timePicker.setOnTimeChangedListener(this);
	}

	// timePicker的监听事件
	@Override
	public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {

		MainActivity.this.setTitle("修改后的时间:" + hourOfDay + "时 " + minute + "分");

	}

	// 对话框形式的datePicker
	private DatePickerDialog getDatePicker_Dialog() {
		DatePickerDialog dpd = new DatePickerDialog(MainActivity.this,
				new OnDateSetListener() {

					@Override
					public void onDateSet(DatePicker view, int year,
							int monthOfYear, int dayOfMonth) {
						MainActivity.this.setTitle(year + "年 "
								+ (monthOfYear + 1) + "月 " + dayOfMonth + "日");
					}
				}, year, month - 1, day);
		return dpd;
	}

	// 对话框形式的timePicker
	private TimePickerDialog getTimePicker_Dialog() {
		TimePickerDialog tpd = new TimePickerDialog(MainActivity.this,
				new OnTimeSetListener() {

					@Override
					public 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
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乘风御浪云帆之上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值