日期时间对话框

package com.example.datedialog;
/*博客作者 X_x_O_0_o 
 *日期2015-1-21
 *程序描述:两个按钮一个文本框。单击第一个按钮可以获取日期,单击第二个按钮获取时间。放到文本框中。
 *
 * */
import java.util.Calendar;

import android.R.string;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.os.Bundle;
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 MainActivity extends Activity {
	private Button button1, button2;
	private EditText edittext1;
	private DatePickerDialog dateDialog; // Dialog的声明方式。
	private TimePickerDialog timeDialog;
	private int year, month, day; // 用变量还是要先声明。
	private int hour, min;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		button1 = (Button) this.findViewById(R.id.button1); // 实例化
		button2 = (Button) this.findViewById(R.id.button2);
		// edittext1 = (EditText)this.findViewById(R.id.edi)
		edittext1 = (EditText) findViewById(com.example.datedialog.R.id.editText1);
		Calendar calendar = Calendar.getInstance(); // 实例化一个日历。并设置三个参数。
		year = calendar.get(Calendar.YEAR);
		month = calendar.get(Calendar.MONTH);
		day = calendar.get(Calendar.DAY_OF_MONTH);
		hour = calendar.get(Calendar.HOUR_OF_DAY);
		min = calendar.get(Calendar.MINUTE);
		//下面是第一个按钮的设置。就两步。先设置对话框,再设置按钮。
		// 下面的第一个参数是this,第二个参数callBack是对话框确定后返回的事件,把要做的时间工作放这里。
		dateDialog = new DatePickerDialog(this, new OnDateSetListener() {
			@Override
			public void onDateSet(DatePicker view, int year, int monthOfYear,
					int dayOfMonth) {
				// TODO Auto-generated method stub
				// 因为月份上是0到11,所以正确显示要加上1.
				String dateset = year + "-" + (monthOfYear + 1) + "-"
						+ dayOfMonth;
				edittext1.setText(dateset);
			}
		}, year, month, day);
		button1.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				// 在button的单击事件中只需要启用对话框的show方法即可。
				dateDialog.show();
			}
		});
		//第二个按键获取时间的设置。其中hour和min都是从Calendar中得到的。
		// 下面这个第一个参数不知道只用this也行,最后一个参数是是否为24进制。
		timeDialog = new TimePickerDialog(this,
				new OnTimeSetListener() {
					@Override
					public void onTimeSet(TimePicker view, int hourOfDay,
							int minute) {
						// TODO Auto-generated method stub
						String timeshow = hourOfDay + ":" + minute;
						edittext1.setText(timeshow);
					}
				}, hour, min, true);
		button2.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				timeDialog.show();
			}
		});
	}
}

收获:使用日期时间对话框其实很简单。

步骤就是:声明对话框那些细节就不说了。设置对话框,直接在new的时候设置,在其中第二个参数中设置获取时间的对应事件(对话框获取)。最后用button的单击事件来调用对话框的显示就可以了。

部分代码:

1、时间对话框的设置

<span style="white-space:pre">	</span>timedialog = new TimePickerDialog(context, callBack, hourOfDay, minute, is24HourView)
参数context用this,hourOfDay和minute用Calendar获取时间。最后一个参数用布尔型来表示其是否是24小时制。

重要的是第二个参数callBack,它是个回调方法。用new OnTimeSetListener()方法。这个方法里设置的是响应这个事件(如获取时间)的内容。

2、日期对话框的设置

<span style="white-space:pre">	</span>dateDialog = new DatePickerDialog(context, callBack, year, monthOfYear, dayOfMonth);
new出来的同时设置就可以了。第一个参数用this(可以加上MainActivity),后面三个参数是年月日参数。

重要的还是callBack参数,用回调方法。用new OnDateSetListener方法,其中的函数中也是一个响应的事件即可。

3、调用对话框

在button中单击事件中调用 dateDialog.show(); 即可。

4、获取系统日期

获取日期和时间都是用Calendar。

从声明到获取:

<span style="white-space:pre">	</span>	Calendar calendar = Calendar.getInstance(); // 实例化一个日历。并设置三个参数。
		year = calendar.get(Calendar.YEAR);<span style="white-space:pre">		</span>//变量要在前面声明是int型
		month = calendar.get(Calendar.MONTH);<span style="white-space:pre">		</span>//变量没有秒。
		day = calendar.get(Calendar.DAY_OF_MONTH);
		hour = calendar.get(Calendar.HOUR_OF_DAY);<span style="white-space:pre">	</span>//这里用HOUR和HOUR_OF_DAY有时候会有区别,后者是24小时制。
		min = calendar.get(Calendar.MINUTE);
运行结果:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值