安卓基础学习 Day26 |常用控件-DatePicker和TimePicker

本文详细介绍了Android中DatePicker和TimePicker的使用方法,包括属性解释、事件监听及自定义样式等,适合初学者快速掌握这两个控件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面的话

1、参考自网络。
2、内容如果有不对的,希望可以指出或补充。
3、新知识。

一、概述

(一)DatePicker

DatePicker(日期选择器):继承自FrameLayout类,主要用来使用户可以方便的选择日期。如果要获取到用户修改DataPicker控件数据的改变事件,需要为DatePicker添加OnDateChangedListener监听器。其属性解释如下。

  • android:calendarTextColor → 日历列表的文本颜色
  • android:calendarViewShown → 设置该日期选择是否显示CalendarView组件
  • 【重点】android:datePickerMode → 组件外观,可选值:spinner,calendar(默认)
  • android:dayOfWeekBackground → 顶部星期几的背景颜色
  • android:dayOfWeekTextAppearance → 顶部星期几的文字颜色
  • android:firstDayOfWeek→ 设置日历列表以星期几开头
  • android:headerBackground→ 整个头部的背景颜色
  • android:headerDayofMonthTextAppearance→ 头部日期字体的颜色
  • android:headerMonthTextAppearance→ 头部月份的字体颜色
  • android:headerYearTextAppearance→ 头部年的字体颜色
  • 【常用】android:maxDate→ 设置可选最大日期,以mm/dd/yyyy格式设置
  • 【常用】android:minDate→ 设置可选最小日期,以mm/dd/yyyy格式设置
  • android:spinnersShown→ 是否显示spinner
  • android:startYear→ 设置起始年
  • android:endYear→ 设置结束年
  • android:yearListItemTextAppearance→ 列表的文本出现在列表中
  • android:yearListSelectorcolor→ 年列表选择的颜色

(二)TimePicker

TimePicker(时间选择器):继承自FrameLayout类。可向用户显示一天中的时间(可以为24小时,也可以为AM/PM制),并允许用户进行选择。如果要获取到用户修改时间数据的事件,则需要为TimePicker添加OnTimeChangedListener监听器。其方法解释如下。

  • is24HourView():判断是否为24小时制
  • setIs24HourView():设置是否为24小时制显示
  • getCurrentXxx():获取当前时间
  • setCurrentXxx():设置当前时间
  • setOnTimeChangedListener():设置时间被修改的回调方法

二、测试

是在【Day25】部分的测试例子中进行的,只需看对应的应用方法部分即可。

自定义吐司样式:

1-1 toast_style.xml

1-2 bg.xml

2 MainActivity.java

    /**设置Toast样式
     */
    public void showToast(String str) {
        //用于加载布局的系统服务
        LayoutInflater inflater = getLayoutInflater();//获取LayoutInflater实例
        //参数1:对应的布局文件资源id;参数2:存放Fragment布局的;
        //参数3:是否在创建布局时附加到存放Fragment布局的上
        View view = inflater.inflate(R.layout.toast_style, null, false);
        TextView tv_msg = view.findViewById(R.id.toast_test);
        tv_msg.setText(str);
        Toast toast = new Toast(MainActivity.this);
        toast.setDuration(Toast.LENGTH_SHORT);
        toast.setView(view);//
        toast.show();
    }

(一)DatePicker

① 布局、实现部分

在activity_main.xml中

实现方法的代码部分(MainActivity.java的onCreate()方法中)

        /**
         * DatePicker日期选择
         * 两种组件外观(datePickerMode)同样的调用法
         */
        DatePicker datePicker = findViewById(R.id.date_picker_test);//获取控件
        datePicker.setVisibility(View.VISIBLE);//显示

        Calendar calendar = Calendar.getInstance();//获取这个日历
        int year = calendar.get(Calendar.YEAR);//获取到年份
        int monthOfYear = calendar.get(Calendar.MONTH);//获取到月份
        int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);//获取到日
        //日期改变时触发
        //init()使DatePicker初始化,并设置日期被修改后,回调的响应事件
        datePicker.init(year, monthOfYear, dayOfMonth, new DatePicker.OnDateChangedListener() {
            @Override
            public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                String str = "您选择的日期为:" + year + "年" + (monthOfYear + 1)
                        + "月" + dayOfMonth + "日";

                showToast(str);//调用方法
            }
        });

② 运行效果如下

(二)TimePicker

① 布局、实现部分

在activity_main.xml中

实现方法的代码部分(MainActivity.java的onCreate()方法中)

        /**
         * TimePicker时间选择
         */
        TimePicker timePicker = findViewById(R.id.time_picker_test);
        timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
            @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                String str = "您选择的时间为:" + hourOfDay + "时" + minute
                        + "分";

                showToast(str);//调用方法
            }
        });

② 运行效果如下

补充

1、Android常用的七大控件

2、Android DatePicker和TimePicker

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值