android 实现日期选择器

利用Android应用框架提供的DatePicker(日期选择器)和TimePicker(时间选择器),实现日期时间选择器。

Dialog的Content布局文件(date_time_dialog.xml):

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

<?xml version="1.0" encoding="utf-8"?>  

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical"

    android:padding="10dip" >  

  

    <TextView

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:singleLine="true"

        android:text="请选择日期"

        android:textColor="#FFFFFF"

        android:textSize="16sp" />  

  

    <DatePicker

        android:id="@+id/date_picker"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_marginTop="5dip" />  

  

    <TextView

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:layout_marginTop="10dip"

        android:singleLine="true"

        android:text="请选择时间"

        android:textColor="#FFFFFF"

        android:textSize="16sp" />  

  

    <TimePicker

        android:id="@+id/time_picker"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_marginTop="5dip" />  

  

</LinearLayout>

代码中的实现:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

package com.easipass.test;  

  

import java.util.Calendar;  

  

import android.app.Activity;  

import android.app.AlertDialog;  

import android.app.Dialog;  

import android.content.DialogInterface;  

import android.os.Bundle;  

import android.text.InputType;  

import android.view.MotionEvent;  

import android.view.View;  

import android.widget.DatePicker;  

import android.widget.EditText;  

import android.widget.TimePicker;  

  

/** 

 * 功能描述:实现日期时间选择器 

 *  

 * @author android_ls 

 */

public class DateTimeActivity extends Activity implements View.OnTouchListener {  

     

    private EditText etStartTime;  

  

    private EditText etEndTime;  

      

    @Override

    public void onCreate(Bundle savedInstanceState) {  

        super.onCreate(savedInstanceState);  

        setContentView(R.layout.main);  

          

        etStartTime = (EditText) this.findViewById(R.id.et_start_time);  

        etEndTime = (EditText) this.findViewById(R.id.et_end_time);  

          

        etStartTime.setOnTouchListener(this);  

        etEndTime.setOnTouchListener(this);  

          

    }  

  

    @Override

    public boolean onTouch(View v, MotionEvent event) {  

        if (event.getAction() == MotionEvent.ACTION_DOWN) {  

  

            AlertDialog.Builder builder = new AlertDialog.Builder(this);  

            View view = View.inflate(this, R.layout.date_time_dialog, null);  

            final DatePicker datePicker = (DatePicker) view.findViewById(R.id.date_picker);  

            final TimePicker timePicker = (android.widget.TimePicker) view.findViewById(R.id.time_picker);  

            builder.setView(view);  

  

            Calendar cal = Calendar.getInstance();  

            cal.setTimeInMillis(System.currentTimeMillis());  

            datePicker.init(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), null);  

  

            timePicker.setIs24HourView(true);  

            timePicker.setCurrentHour(cal.get(Calendar.HOUR_OF_DAY));  

            timePicker.setCurrentMinute(Calendar.MINUTE);  

  

            if (v.getId() == R.id.et_start_time) {  

                final int inType = etStartTime.getInputType();  

                etStartTime.setInputType(InputType.TYPE_NULL);  

                etStartTime.onTouchEvent(event);  

                etStartTime.setInputType(inType);  

                etStartTime.setSelection(etStartTime.getText().length());  

                  

                builder.setTitle("选取起始时间");  

                builder.setPositiveButton("确  定"new DialogInterface.OnClickListener() {  

  

                    @Override

                    public void onClick(DialogInterface dialog, int which) {  

  

                        StringBuffer sb = new StringBuffer();  

                        sb.append(String.format("%d-%02d-%02d",   

                                datePicker.getYear(),   

                                datePicker.getMonth() + 1,  

                                datePicker.getDayOfMonth()));  

                        sb.append("  ");  

                        sb.append(timePicker.getCurrentHour())  

                        .append(":").append(timePicker.getCurrentMinute());  

  

                        etStartTime.setText(sb);  

                        etEndTime.requestFocus();  

                          

                        dialog.cancel();  

                    }  

                });  

                  

            else if (v.getId() == R.id.et_end_time) {  

                int inType = etEndTime.getInputType();  

                etEndTime.setInputType(InputType.TYPE_NULL);      

                etEndTime.onTouchEvent(event);  

                etEndTime.setInputType(inType);  

                etEndTime.setSelection(etEndTime.getText().length());  

  

                builder.setTitle("选取结束时间");  

                builder.setPositiveButton("确  定"new DialogInterface.OnClickListener() {  

  

                    @Override

                    public void onClick(DialogInterface dialog, int which) {  

  

                        StringBuffer sb = new StringBuffer();  

                        sb.append(String.format("%d-%02d-%02d",   

                                datePicker.getYear(),   

                                datePicker.getMonth() + 1,   

                                datePicker.getDayOfMonth()));  

                        sb.append("  ");  

                        sb.append(timePicker.getCurrentHour())  

                        .append(":").append(timePicker.getCurrentMinute());  

                        etEndTime.setText(sb);  

                          

                        dialog.cancel();  

                    }  

                });  

            }  

              

            Dialog dialog = builder.create();  

            dialog.show();  

        }  

  

        return true;  

    }  

      

}

运行后的效果图:

点击EditTet之后

点击确定之后

转自:http://www.open-open.com/lib/view/open1364268229062.html

时间: 2024-12-28 18:38:25

android 实现日期选择器的相关文章

Android的日期选择器

TimePicker(时间选择器) 方法 描述 Integer getCurrentHour () 返回当前设置的小时 Integer getCurrentMinute() 返回当前设置的分钟 boolean is24HourView() 判断是否是24小时制 void setCurrentHour(Integer currentHour) 设置当前的小时数 void setCurrentMinute(Integer currentMinute) 设置当前的分钟 void setEnabled(

Android笔记之日期选择器

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

Android自定义DataTimePicker(日期选择器)

Android自定义DataTimePicker(日期选择器) Android日期时间选择器实现以及自定义大小

Android零基础入门第57节:日期选择器DatePicker和时间选择器TimePicker

在实际开发中,经常会遇见一些时间选择器.日期选择器.数字选择器等需求,那么从本期开始来学习Android中常用选择器,今天学习的是DatePicker和TimePicker. 一.DatePicker DatePicker是一个比较简单的组件,从FrameLayout派生而来,供用户选择日期.其在FrameLayout的基础上提供了一些方法来获取当前用户所选择的日期,如果程序需要获取用户选择的日期则可通过为DatePicker添加 OnDateChangedListener 进行监听来实现. 使

Android基于wheelView的自定义日期选择器(可拓展样式)

基于wheelView的自定义日期选择器 项目要求效果图: 要求 "6月20 星期五" 这一项作为一个整体可以滑动,"7时"."48分"分别作为一个滑动整体. 系统自带的DatePicker.TimePicker大家都知道,只有这种效果: 百度了很多,试了NumberPicker等都不行,本来打算自己写.网友推荐了一个开源组件WheelView,下下来试了试,发现他已经定义的很完善了,在他的基础上拓展很容易. 现将基于wheelView自定义日期

【Android学习笔记】DatePickerDialog和TimePickerDialog日期选择器和时间选择器

(1)布局文件 <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:p

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" > <

Mobiscroll手机触屏日期选择器

   最近在制作jquery mobile因要用到日历控件,突然发现Mobiscroll非常不错.于是摘下来记录. A Mobiscroll是一个用于触摸设备(Android phones.iPhone. iPad.Galaxy Tab)的日期和时间选择器jQuery插件.可以让用户很方便的只需要滑动数字就可以选择日期.Mobiscroll作为一款jQuery日期插件可以让用户自定义主题,完全通过CSS文件修改样式,经过测试可以完美使用在iOS4.Android 2.2. Android 2.3

Android课程---日历选择器和时间选择器

package com.hanqi.test5; import android.os.Bundle; import android.support.annotation.IdRes; import android.support.v7.app.AppCompatActivity; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.DatePicker; impor