Android学习:用户界面UI之日期和时间对话框

        DatePickerDialog、TimePickerDialog(日期和时间对话框)

        创建步骤如下:

        1、调用Activity的onCreateDialog()方法创建对话框。

        2、分别在OnDateSetListener的onDateSet()方法和OnTimeSetListener的onTimeSet()方法中更改日期和时间。

        3、调用Activity的showDialog()显示对话框。(当系统调用showDialog时,会根据ID去onCreateDialog中查找对应的对话框)

package com.jwt.chp04;

import java.util.Calendar;

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

public class DateTimeActivity extends Activity {

	private TextView lblShow;
	private Button btnDate;
	private Button btnTime;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_datetime);

		lblShow = (TextView) findViewById(R.id.lblDTAShow);
		btnDate = (Button) findViewById(R.id.btnDTADatePicker);
		btnTime = (Button) findViewById(R.id.btnDTATimePicker);

		btnDate.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				showDialog(0);// 注意此处与onCreateDialog的关系
			}
		});
		btnTime.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				showDialog(1);// 注意此处与onCreateDialog的关系
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.date_time, menu);
		return true;
	}

	// onCreateDialog与showDialog是对应的,系统遇到了showDialog就去找onCreateDialog创建
	@Override
	protected Dialog onCreateDialog(int id) {
		Dialog d = null;
		Calendar c = Calendar.getInstance();
		switch (id) {
		case 0:
			d = new DatePickerDialog(this,
					new DatePickerDialog.OnDateSetListener() {

						@Override
						public void onDateSet(DatePicker view, int year,
								int monthOfYear, int dayOfMonth) {
							lblShow.setText("您选择了" + year + "-" + monthOfYear
									+ "-" + dayOfMonth);
						}
					}, c.get(Calendar.YEAR), c.get(Calendar.MONTH),
					c.get(Calendar.DAY_OF_MONTH));
			break;
		case 1:

			d = new TimePickerDialog(this,
					new TimePickerDialog.OnTimeSetListener() {

						@Override
						public void onTimeSet(TimePicker arg0, int arg1,
								int arg2) {
							lblShow.setText("您选择了" + arg1 + ":" + arg2);
						}
					}, c.get(Calendar.HOUR), c.get(Calendar.MONDAY), false);
			break;
		}
		return d;
	}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值