安卓:表示日期的控件

news2024/11/29 8:41:09

一、日期控件

(一)、DatePicker

        DatePicker是一种安卓平台上常用的控件,用于让用户选择日期。它通常以日历的形式显示,并允许用户通过滑动或点击来选择年、月和日。

常用属性:

  • android:calendarViewShown是否显示日历视图,默认为true。若设为false,则只显示年、月和日的滚动选择器。
  • android:calendarTextColor : 日历列表的文本的颜色
  • android:calendarViewShown:是否显示日历视图
  • android:datePickerMode:组件外观,可选值:spinner,calendar 前者效果如下,默认效果是后者。
  • android:calendarTextColor : 日历列表的文本的颜色
  • android:calendarViewShown:是否显示日历视图
  • android:datePickerMode:组件外观,可选值:spinner,calendar 前者效果如下,默认效果是后者

常用方法:

  • init(int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener):初始化DatePicker控件并设置选定日期及日期改变监听器。
  • getYear():获取选中的年份。
  • getMonth():获取选中的月份(范围为0-11)。
  • getDayOfMonth():获取选中的日期。
  • setMinDate(long minDate):设置最小日期,限制用户选择的最早日期。
  • setMaxDate(long maxDate):设置最大日期,限制用户选择的最晚日期。

(二)、CalendarView 

        CalendarView是一个Android控件,用于显示日历和选择日期。它提供了一个交互式的界面,让用户可以浏览不同的月份,并选择特定的日期。

常用属性

  • android:date:指定默认选中的日期,以YYYY-MM-DD格式表示。
  • android:minDate:指定可选日期的最小值,以YYYY-MM-DD格式表示。
  • android:maxDate:指定可选日期的最大值,以YYYY-MM-DD格式表示。
  • android:weekNumberColor:设置周数文字的颜色。
  • android:focusedMonthDateColor:设置当前月份中日期文字的颜色。
  • android:unfocusedMonthDateColor:设置非当前月份中日期文字的颜色。
  • android:selectedWeekBackgroundColor:设置选中日期所在周背景的颜色。
  • android:selectedDateVerticalBar:设置选中日期左侧的垂直条的颜色。
  • android:shownWeekCount:设置日历中显示的周数。

常用方法

  • setDate(long milliseconds):设置默认选中的日期。
  • getDate():获取当前选中的日期,返回一个long类型的表示日期的毫秒数。
  • setMinDate(long minDate):设置可选日期的最小值,即限制用户能够选择的最早日期。
  • getMinDate():获取可选日期的最小值。
  • setMaxDate(long maxDate):设置可选日期的最大值,即限制用户能够选择的最晚日期。
  • getMaxDate():获取可选日期的最大值。
  • setOnDateChangeListener(OnDateChangeListener listener):设置日期改变监听器,当用户选中不同的日期时触发该监听器。

二、例子

 MainActivity :

public class MainActivity extends AppCompatActivity {

    private CalendarView calendarView;
    private DatePicker datePicker;
    private TextView selectedDateTextView;

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

        calendarView = findViewById(R.id.calendarView);
        datePicker = findViewById(R.id.datePicker);
        selectedDateTextView = findViewById(R.id.selectedDateTextView);

        // 设置CalendarView的日期改变监听器
        calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
            @Override
            public void onSelectedDayChange(@NonNull CalendarView view, int year, int month, int dayOfMonth) {
                // 处理日期改变事件
                String selectedDate = year + "-" + (month + 1) + "-" + dayOfMonth;
                selectedDateTextView.setText("选中日期:" + selectedDate);
            }
        });

        // 设置DatePicker的日期改变监听器
        datePicker.init(datePicker.getYear(), datePicker.getMonth(), datePicker.getDayOfMonth(),
                new DatePicker.OnDateChangedListener() {
                    @Override
                    public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                        // 处理日期改变事件
                        String selectedDate = year + "-" + (monthOfYear + 1) + "-" + dayOfMonth;
                        selectedDateTextView.setText("选中日期:" + selectedDate);
                    }
                });
        
        // 初始时显示当前日期
        updateSelectedDate();
    }

    private void updateSelectedDate() {
        int year = datePicker.getYear();
        int month = datePicker.getMonth();
        int dayOfMonth = datePicker.getDayOfMonth();
        String selectedDate = year + "-" + (month + 1) + "-" + dayOfMonth;
        selectedDateTextView.setText("选中日期:" + selectedDate);
    }
}

activity_main: 

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <CalendarView
        android:id="@+id/calendarView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <DatePicker
        android:id="@+id/datePicker"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/selectedDateTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:textSize="18sp" />

</LinearLayout>

运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/763529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第一阶段-第十二章 Python基础的综合案例(数据可视化-动态柱状图)

目录 引、案例效果一、基础柱状图的构建  1.学习目标  2.通过Bar构建基础柱状图  3.反转x和y轴  4.数值标签在右侧  5.本节的演示  6.本小节的总结 二、基础时间线柱状图  1.学习目标  2.时间线  3. 自动播放  4.时间线的主题  5.本节的代码演示  6.本…

MSP432自主开发笔记3:串口__编写自定义printf发送函数、编写发送字节字符串函数编写

之前其实对于串口在收发字节、收发字符串方面的介绍已经挺完全了&#xff0c; 但今日无意间发现漏了些什么&#xff0c;之前有讲到过串口的printf()发送问题&#xff0c;但也仅仅教大家如何重定向printf&#xff08;&#xff09;&#xff1b;来决定向哪个串口发送数据. print…

代码随想录算法训练营第57天 | 动态规划 part17 ● 647 回文子串 ●516最长回文子序列 ●动归总结

#647 回文子串 自己不会做。 之前遇到的大部分题目是&#xff0c;我们求什么dp里面就放什么。但这道回文的题不是&#xff1a;" 本题如果我们定义&#xff0c;dp[i] 为 下标i结尾的字符串有 dp[i]个回文串的话&#xff0c;我们会发现很难找到递归关系。dp[i] 和 dp[i-1]…

自监督语义分割面模型——Masked Autoencoders Are Scalable Vision Learners(MAE)论文阅读

1、摘要 This paper shows that masked autoencoders (MAE) are scalable self-supervised learners for computer vision. Our MAE approach is simple: we mask random patches of the input image and reconstruct the missing pixels. It is based on two core designs. F…

实现二分搜索函数,设计脚手架程序进行自动测试。

1. 设计思路   二分搜索算法每次将数组中间值与目标值相比较&#xff0c;若相同&#xff0c;则该元素就是要寻找的元素&#xff0c;若不相同&#xff0c;二分搜索法通过一定的方法抛弃一半的待搜索区间&#xff0c;在剩余的区间中继续以相同方法搜索目标值. 2.源代码 #incl…

网络存储技术知识点整理

目录 前言1. 直接附加存储2. 网络附加存储3. 存储区域网络 前言 目前主流的存储技术只要有三种&#xff1a; 直接附加存储&#xff08;Direct Attached Storage&#xff0c;DAS&#xff09;网络附加存储&#xff08;Network Attached Storage&#xff0c;NAS&#xff09;存储…

flutter开发实战-Canvas绘图之Path路径动画

flutter开发实战-Canvas绘图之Path路径动画 flutter提供一块2D画布Canvas&#xff0c;Canvas内部封装了一些基本绘制的API&#xff0c;开发者可以通过Canvas绘制各种自定义图形。canvas上绘图&#xff0c;有多种不同的方式&#xff0c;常用的就是使用 Path。这里是flutter实现…

10分钟设置免费远程桌面

“你见过洛杉矶凌晨4点的样子吗&#xff1f;” 没有也没关系&#xff0c;你可以轻松配置一台位于洛杉矶的免费远程桌面。 利用Amazon全球可用区&#xff0c;甚至可以在世界各地搭建符合你配置需求的远程桌面。 本教程需要先拥有亚马逊云科技海外账户。目前注册亚马逊云科技账户…

32-ADC的寄存器

目录 stm32-adc通过比较获取电压原理 为什么会分注入组和规则组&#xff1f; “ECO"是指"Engineering Change Order”&#xff0c;即工程变更指令。 双ADC的不同模式以及为什么会有这个模式&#xff1a; 同步注入模式&#xff1a; 同步规则模式&#xff1a; 快…

应用系统的集成的方式

一、说明 应用系统的集成从技术上可以分为界面集成、数据集成、接口集成、流程集成和平台集成等多种方式。 二、详情 2.1界面集成 指的是系统与系统之间没有实质上的关联&#xff0c;只是汇聚到同样的应用接人点&#xff0c;采用类似的初始界面&#xff0c;或者统一的登录手…

IDEA修改新添加项目的Maven配置信息

改成自己的Maven环境即可 以后打开新项目都会自动哟用这个

【JDK环境配置】| 两种JDK环境能在同一台电脑共存吗?

目录 &#x1f981; 前言&#x1f981; 基础环境&#x1f981; 安装JDK1.8Ⅰ. 下载Ⅱ. 安装 &#x1f981; 在项目里更改JDK版本---------------------------------------------福利在下面--------------------------------------------------&#x1f981; 福利&#xff08;送…

一张表实现短视频“评论区“完整功能

前言 现如今&#xff0c;不管是哪种类型的应用&#xff0c;评论区都少不了。从工具类的到媒体信息流类的&#xff0c;评论留言都是最基本的互动环节。比如抖音短视频下&#xff0c;针对视频每个用户都可以发表自己的观点&#xff1b;而针对用户的评论&#xff0c;其他的用户又可…

小程序form表单验证,validate 在更新数据以后不能验证?还是提示同意错误

报错&#xff1a; 一直报手机号码必须填写&#xff0c;但是我已经填写了。 解决&#xff1a; 花了2个小时&#xff0c;最后发布是模式models写错了。 改完之后&#xff0c;终于提示别的错误了&#xff1a; 源码&#xff1a; //wxml <view class"welcome">欢…

【使用深度学习的城市声音分类】使用从提取音频特征(频谱图)中提取的深度学习进行声音分类研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

java正则表达式大全(常用)

一、校验数字的表达式 数字&#xff1a;^[0-9]*$ n位的数字&#xff1a;^\d{n}$ 至少n位的数字&#xff1a;^\d{n,}$ m-n位的数字&#xff1a;^\d{m,n}$ 零和非零开头的数字&#xff1a;^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字&#xff1a;^([1-9][0-9]*)(.[0…

一分钟教会你五种CycleGAN的优质创新思路(附代码)

专栏导读 &#x1f525;&#x1f525;本文已收录于专栏&#xff1a;《风格迁移之从入门到成功魔改》&#xff0c;欢迎免费订阅​此专栏用于带你从零基础学会什么是风格迁移&#xff0c;风格迁移有什么作用&#xff0c;传统做法和Cyclegan的原理&#xff0c;及其优缺点&#xf…

领域驱动中的Android开发

领域驱动的Android开发 构建有意义的模型 在Android开发世界中&#xff0c;最佳架构的竞争一直存在。MVC、MVP、MVVM、MVI是互联网上许多文章讨论的热门话题。 我们知道View不应包含任何复杂逻辑。我们知道Controller、Presenter和ViewModel之间的区别。但是&#xff0c;我们…

数据结构复习(一)到循环队列

第一章 数据结构绪论 数据结构&#xff1a;是相互之间存在一种或多种特定关系的数据元素的集合。 第2章 算法 算法&#xff1a;解决特定问题求解步骤的描述&#xff0c;在计算机中表现为指令的有限序列&#xff0c;并且每条指令表示为一个或多个操作。 算法具有五个基本特性…

2023.7.17-用*来画一个直角在左(右)下方的等腰直角三角形

功能&#xff1a;如题&#xff0c;直角边长度为5。 代码&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() {int a, b, i,j;printf("直角边的长度为&#xff1a;");scanf("%d",&a);for (i 1; i < a;i){for (j…