Android笔记——date&time(日期时间选择对话框)

TimePickerDialog(时间选择对话框)

创建TimePickerDialog时间选择对话框:

1.创建一个类继承DialogFragement

2.重写onCreateDialog()方法,返回一个TimePickerDialog对象

3.实现TimePickerDialog的OnTimeSetListener接口来接收一个回调,当用户设置时间

DatePickerDialog(日期选择对话框)

创建DatePickerDialog日期选择对话框:

1.创建一个类继承DialogFragment

2.重写onCreateDialog()方法,返回一个TimePickerDialog对象

3.实现DatePickerDialog的OnDateSetListener接口来接收一个回调,当用户设置日期

DatePickerDialog和TimePickerDialog是Android提供的可以弹出一个日期、时间选择的对话框,我们可以在程序中通过实例化DatePickerDialog和TimePickerDialog来得到一个日期、时间对话框。这两个类都是AlertDialog的子类

我提供了一个百度的关于Picker的官方说明,可能对理解这篇文章有帮助:http://wenku.baidu.com/link?url=U77TPsl99lpf8QrGD2h6XKA6xJqzk-JseCnJhC9VmgYoWckhCZ8-3F3TzOkOZGLverjwt6JitlhW-wWMODAOQLtEpVxryaZxNlCQstOjLCK

点击打开链接

源码:

html

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:id="@+id/button1_settime"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Set Time"
        android:onClick="setTimeClick"/>

    <TextView
        android:id="@+id/tv_settime"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <Button
        android:id="@+id/button1_setdate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Set Date"
        android:onClick="setDateClick"/>

    <TextView
        android:id="@+id/tv_setdate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</LinearLayout>

java

<span style="font-size:12px;">import java.util.Calendar;

import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.app.TimePickerDialog;
import android.text.format.DateFormat;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;

@SuppressLint({ "NewApi", "ValidFragment" })
public class MainActivity extends Activity {
	private Button btnSetTime;
	private TextView tv_setTime;
	private TextView tv_setDate;

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
               //实例化对象,通过findViewById和相应的xml布局组件绑定
                btnSetTime = (Button) findViewById(R.id.button1_settime);
		tv_setTime = (TextView) findViewById(R.id.tv_settime);
		tv_setDate = (TextView) findViewById(R.id.tv_setdate);
	}

	//设置日期事件处理方法
	public void setDateClick(View v){
		SetDateDialog sdt = new SetDateDialog();
		sdt.show(getFragmentManager(), "datePicker");
	}

	//设置时间事件处理方法
	public void setTimeClick(View v){
		SetTimeDialog std = new SetTimeDialog();
		std.show(getFragmentManager(), "timePicker");
	}

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

	//创建日期选择对话框
	class SetDateDialog extends DialogFragment implements DatePickerDialog.OnDateSetListener{

		public Dialog onCreateDialog(Bundle savedInstanceState) {
		        //Calendar 是一个抽象类,是通过getInstance()来获得实例,设置成系统默认时间
			 final Calendar c = Calendar.getInstance();
			//获取年,月,日
                        int year = c.get(Calendar.YEAR);
			int month = c.get(Calendar.MONTH);
			int day= c.get(Calendar.DAY_OF_MONTH);

                        DatePickerDialog dpd = new DatePickerDialog(getActivity(), this, year, month, day);

			return dpd;
		}
		public void onDateSet(DatePicker view, int year, int month, int day) {
			tv_setDate.setText(year+"年"+(month+1)+"月"+day+"日");
		}

	}
	//创建时间选择对话框
	@SuppressLint("NewApi")
	 class SetTimeDialog extends DialogFragment implements TimePickerDialog.OnTimeSetListener{

		@SuppressLint("NewApi")
		public Dialog onCreateDialog(Bundle savedInstanceState) {
			//获取小时,分钟
                        final Calendar c = Calendar.getInstance();
			int hour = c.get(Calendar.HOUR_OF_DAY);
			int minute = c.get(Calendar.MINUTE);

                        TimePickerDialog tpd = new TimePickerDialog(getActivity(),this,hour, minute, DateFormat.is24HourFormat(getActivity()));
			return tpd;
		}

		public void onTimeSet(TimePicker view, int hourOfDay, int minute){

			tv_setTime.setText(hourOfDay+":"+minute);
		}
	}
}</span>

效果展示:


时间: 2024-10-22 09:48:52

Android笔记——date&time(日期时间选择对话框)的相关文章

Android中的时间日期选择器

1.layout <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <

Android之日期及时间选择对话框

转:http://www.cnblogs.com/linjiqin/archive/2011/03/10/1980215.html main.xml布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" androi

Android笔记之日期选择器

1.主代码 /** * 日期选择器 */ private DatePickerDialog datePickerDialog; /** * 年 */ private int mYear=1993; /** * 月 */ private int mMonth=12-1; /** * 日 */ private int mDay=16; ......................... //构造函数包括mYear, mMonth, mDay用来显示初始日期,同时设置监听 datePickerDial

Android学习笔记(七)——显示对话框窗口

显示对话框窗口 1.创建Dialog1项目,在activity_main.xml文件中添加一个Button: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:l

Android ApiDemos 学习——时间日期控件

时间日期进程会用到平时的开发中,android内置了两种可交互的时间日期控件,一种是对话框形式的,一种是内嵌式的. 分别使用了android的类TimePickerDialog.DatePickerDialog以及TimePicker,其中TimePicker需要在layout中进行设置 对话框形式的时间控件 public class DateDialog extends Activity { // where we display the selected date and time priv

[转]ASP.NET MVC HtmlHelper扩展之Calendar日期时间选择

本文转自:http://blog.bossma.cn/asp_net_mvc/asp-net-mvc-htmlhelper-calendar-datetime-select/ 这里我们扩展HtmlHelper,就像它包含在ASP.NET MVC中一样,扩展方法使我们能为已有的类添加方法.这里使用了一个日期时间选择控件:My97DatePicker,需要添加到网站中,并在页面中引用. 先看看是怎么扩展的: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Android笔记——Android中数据的存储方式(二)

我们在实际开发中,有的时候需要储存或者备份比较复杂的数据.这些数据的特点是,内容多.结构大,比如短信备份等.我们知道SharedPreferences和Files(文本文件)储存这种数据会非常的没有效率.如果学过JavaWeb的朋友,首先可能想到的是数据库.当然了数据库是一个方案,那么是否还有其他的解决方案呢?今天我们在讲下Android笔记——Android中数据的存储方式(一) 提到的除了SharedPreferences和Files(文本文件)以外的其他几种数据储存方式:xml文件.SQL

Android笔记:多分辨率适配及碎片化问题解决方案总结

一.适配多分辨率 1.官网介绍: http://developer.android.com/guide/practices/screens_support.html#qualifiers Screen characteristic Qualifier Description Size small Resources for small size screens. normal Resources for normal size screens. (This is the baseline siz

Android笔记之网络状态判断

1.首先当然得在 manifest 中添加检查网络状态的权限: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><uses-permission android:name="android.permission.INTERNET"/> 2.具体判断步骤 (1)首先要先获得Android 对连接管理的一