为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Android

在实际开发中,经常会遇见一些时间选择器、日期选择器、数字选择器等需求,那么从本期开始来学习Android中常用选择器,今天学习的是DatePicker和TimePicker。

                                              

一、DatePicker

    DatePicker是一个比较简单的组件,从FrameLayout派生而来,供用户选择日期。其在FrameLayout的基础上提供了一些方法来获取当前用户所选择的日期,如果程序需要获取用户选择的日期则可通过为DatePicker添加 OnDateChangedListener 进行监听来实现。

    使用DatePicker的常用XML属性如下:

·         android:calendarViewShown:设置该日期选择是否显示CalendarView组件。

·         android:endYear:设置日期选择器允许选择的最后一年。

·         android:maxDate:设置该日期选择器的最大日期。以mm/dd/yyyy格式指定最大日期。

·         android:minDate:设置该日期选择器的最小日期。以mm/dd/yyyy格式指定最小日期。

·         android:spinnersShown:设置该日期选择器是否显示Spinner日期选择组件。

·         android:startYear:设置日期选择器允许选择的第一年。

    接下来通过一个简单的示例程序来学习DatePicker的使用。

    继续使用WidgetSample工程的advancedviewsample模块,在app/main/res/layout/目录下创建datepicker_layout.xml文件,在其中填充如下代码片段:

[代码]xml代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

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

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

                android:layout_width="match_parent"

                android:layout_height="match_parent" >

 

    <DatePicker

        android:id="@+id/datePicker"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_gravity="center_horizontal"

        android:startYear="2015"

        android:endYear="2020"

        android:calendarViewShown="true"

        android:spinnersShown="true" />

</RelativeLayout>

    新建DatePickerActivity.java文件,加载上面新建的布局文件,初始化DatePicker并获取用户的选择,具体代码如下:

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

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

package com.jinyu.cqkxzsxy.android.advancedviewsample;

 

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.widget.DatePicker;

import android.widget.Toast;

 

import java.util.Calendar;

 

/**

 * @创建者 鑫鱻

 * @描述 Android零基础入门到精通系列教程,欢迎关注微信公众号ShareExpert

 */

public class DatePickerActivity   extends AppCompatActivity   {

    private DatePicker mDatePicker = null; // 日期选择器

    private Calendar mCalendar = null; // 日历

    private int mYear; //

    private int mMonth; //

    private int mDay; //

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.datepicker_layout);

 

        //   获取日历对象

        mCalendar   = Calendar.getInstance();

        //   获取当前对应的年、月、日的信息

        mYear   = mCalendar.get(Calendar.YEAR);

        mMonth   = mCalendar.get(Calendar.MONTH);

        mDay   = mCalendar.get(Calendar.DAY_OF_MONTH);

 

        //   获取DatePicker组件

        mDatePicker   = (DatePicker) findViewById(R.id.datePicker);

        //   DatePicker初始化

        mDatePicker.init(mYear,   mMonth, mDay, new DatePicker.OnDateChangedListener() {

            @Override

            public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {

                Toast.makeText(DatePickerActivity.this,

                        year   + "年" + (monthOfYear + 1) + "月" + dayOfMonth + "日",

                        Toast.LENGTH_SHORT).show();

            }

        });

    }

}

    上面程序代码为DatePicker绑定事件监听器的代码,当用户通过这该组件来选择日期时,监听器就会被触发。

    运行程序,可以看到界面效果。

二、TimePicker

    TimePicker与DatePicker非常相似,主要是供用户选择时间。也是在FrameLayout的基础上提供了一些方法来获取当前用户所选择的时间,如果程序需要获取用户选择的时间则可通过为TimePicker添加 OnTimeChangedListener 进行监听来实现。

    接下来通过一个简单的示例程序来学习TimePicker的使用。

   继续使用WidgetSample工程的advancedviewsample模块,在app/main/res/layout/目录下创建timepicker_layout.xml文件,在其中填充如下代码片段:

[代码]xml代码:

?

01

02

03

04

05

06

07

08

09

10

11

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

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

                android:layout_width="match_parent"

                android:layout_height="match_parent" >

 

    <TimePicker

        android:id="@+id/timePicker"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_gravity="center_horizontal" />

</RelativeLayout>

    新建TimePickerActivity.java文件,加载上面新建的布局文件,初始化TimePicker并获取用户的选择,具体代码如下:

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

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

package com.jinyu.cqkxzsxy.android.advancedviewsample;

 

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.widget.TimePicker;

import android.widget.Toast;

 

import java.util.Calendar;

 

/**

 * @创建者 鑫鱻

 * @描述 Android零基础入门到精通系列教程,欢迎关注微信公众号ShareExpert

 */

public class TimePickerActivity   extends AppCompatActivity   {

    private TimePicker mTimePicker = null; // 时间选择器

    private Calendar mCalendar = null; // 日历

    private int mHour; //

    private int mMinute; //

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.timepicker_layout);

 

        //   获取日历对象

        mCalendar   = Calendar.getInstance();

        //   获取对应的时、分的信息

        mHour   = mCalendar.get(Calendar.HOUR_OF_DAY);

        mMinute   = mCalendar.get(Calendar.MINUTE);

 

        //   获取TimePicker组件

        mTimePicker   = (TimePicker) findViewById(R.id.timePicker);

        //   为TimePicker指定监听器

        mTimePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {

            @Override

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

                Toast.makeText(TimePickerActivity.this,   hourOfDay + ":" + minute,

                        Toast.LENGTH_SHORT).show();

            }

        });

    }

}

    上面程序代码为TimePicker绑定事件监听器的代码,当用户通过这该组件来选择时间时,监听器就会被触发。

    运行程序,可以看到界面效果。

    至此,关于DatePicker和TimePicker的简单使用先告一段落,更多功能建议多摸索练习。

    今天就先到这里,如果有问题欢迎留言一起探讨,也欢迎加入Android零基础入门技术讨论微信群,共同成长!

原文链接:http://www.apkbus.com/blog-205190-72623.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消