您当前的位置:首页 > 互联网教程

android日历控件

发布时间:2025-05-14 02:32:38    发布人:远客网络

android日历控件

一、android日历控件

在Android中,DatePicker用来实现日期输入设置,日期的设置范围为1900年1月1日至2100年12月31日。

DatePicker的常用xml属性如图1所示:

其中,android:calendarViewShown[boolean]用于设置是否显示calendar view;android:endYear[int]用于设置截至日期;android:maxDate[int]用于设置最大的日期;android:minDate[int]用于设置最小的日期;android:spinnersShown[boolean]用于设置是否显示spinners;android:startYear[int]用于设置起始日期。

DatePicker的常用方法有以下一些:

(1)public CalendarView getCalendarView();//获取CalendarView

(2)public boolean getCalendarViewShown();//获取CalendarView是否显示

(3)public int getDayOfMonth();//获取当前日期的日

(4)public long getMaxDate();//获取最大日期

(5)public long getMinDate();//获取最小日期

(6)public int getMonth();//获取当前日期的月

(7)public boolean getSpinnersShown();//获取Spinners是否显示

(8)public int getYear();//获取当前日期的年

(9)public void init(int year,int monthOfYear,int dayOfMonth,

DatePicker.OnDateChangedListener onDateChangedListener);//初始化日期

(10)public void setCalendarViewShown(boolean shown);//设置是否显示CalendarView

(11)public void setMaxDate(long maxDate);//设置最大日期

(12)public void setMinDate(long minDate);//设置最小日期

(13)public void setSpinnersShown(boolean shown);//设置是否显示Spinners

(14)public void updateDate(int year,int month,int dayOfMonth);//更新当前日期

在Android中,TimePicker用来实现时间输入设置,可以选择12或24小时模式。TimePicker的常用方法有以下一些:

(1)public Integer getCurrentHour();//获取当前时间的小时

(2)public Integer getCurrentMinute();//获取当前时间的分钟

(3)public boolean is24HourView();//获取是否为24小时模式

(4)public void setCurrentHour(Integer currentHour);//设置当前时间的小时

(5)public void setCurrentMinute(Integer currentMinute);//设置当前时间的分钟

(6)public void setIs24HourView(Boolean is24HourView);//设置24小时模式

在Android中,DatePickerDialog用来显示日期对话框。DatePickerDialog的常用方法有以下一些:

(1)public DatePicker getDatePicker();//获取DatePicker中的日期值

(2)public void onClick(DialogInterface dialog,int which);//响应对话框中的点击事件

(3)public void onDateChanged(DatePicker view,int year,int month,int day);//响应日期改变事件

(4)public void updateDate(int year,int monthOfYear,int dayOfMonth);//更新当前日期

在Android中,TimePickerDialog用来显示时间对话框。TimePickerDialog的常用方法有以下一些:

(1)public void onClick(DialogInterface dialog,int which);//响应对话框中的点击事件

(2)public void onTimeChanged(TimePicker view,int hourOfDay,int minute);//响应时间改变事件

(3)public void updateTime(int hourOfDay,int minuteOfHour);//更新当前时间

在Android中,AnalogClock用于显示指针式时钟,该时钟仅有时钟和分钟两个指针。

在Android中,DigitalClock用来显示数字式时钟,显示格式为HH:MM:SS AM/PM。

二、Android系统列表控件

1、在Android系统中,展示列表数据的控件多样且各有特点。首先,我们来介绍ListView,这是Android中常用的UI组件,通过滑动屏幕展示多个内容。

2、ListView以列表形式展示数据,并能根据数据长度自适应显示,适配器是关键。有ArrayAdapter、SimpleAdapter和SimpleCursorAdapter三种类型。在开发中,通常继承BaseAdapter来自定义适配器和效果。

3、数据更新时,需重新设置适配器数据并调用`notifyDataSetChanged`方法。对于ListView的自定义视图,开发者常使用自定义Holder类。

4、接下来是GridView,它以网格形式展示数据,通过自定义BaseAdapter实现。与ListView类似,主要关注如何实现自定义Adapter和交互。

5、接着是RecyclerView,它被认为是ListView和GridView的增强版,适合处理大量数据集。布局管理器是其特点之一,有默认的三个布局管理器,支持横向、纵向排列和反向滑动。通过`setLayoutManager`方法调整滑动方向。

6、对于监听和点击事件,RecyclerView不自带,开发者需自定义实现。此外,RecyclerView支持丰富的动画效果,增强用户交互体验。

7、实现下拉刷新和上拉加载功能,通过监听滑动事件,当用户滑动达到特定距离时触发刷新或加载操作。可以使用`addHeaderView`和`addFooterView`为列表添加头部和底部视图,实现刷新和加载效果。

8、另外,SwipeRefreshLayout控件专门用于实现滑动刷新功能,提供独特的进度条展示,并触发回调方法。需注意控件使用时的兼容性问题。

9、在列表控件的交互中,事件是核心,通过事件实现各种效果和功能。列表控件的优化是一个系统性工作,涉及性能、布局、动画等多个方面,需结合业务场景进行优化。

10、总结,掌握常用优化方法是列表控件开发的关键,同时,团队合作与业务场景的深度理解对优化工作至关重要。随着应用功能和系统迭代,优化工作将不断进行。

三、Android 自定义控件 layout

View:View主要执行layout方法,使用 serFrame方法来设置本身 View的四个顶点的位置,确定View本身的位置。

ViewGroup:ViewGroup主要执行onLayout方法,递归遍历所有子View,确定子View的位置。

我们来看ViewRootImpl中的 performLayout()方法

看到这里,那host.getMeasuredWidth()/ host.getMeasuredHeight()是什么?它是直接调用View中的方法,其实就是经过measure后的DecorView的测量宽度和高度。在 Android自定义控件 measure中有说明。

2.3.2.1我们先来看ViewGroup中的 layout()方法

ViewGroup里面的layout最终会调入到父类View中的layout,View的layout后面讲解。这里可以先告诉大家,最终会调用View的onLayout方法,而ViewGroup的onLayout是抽象方法,所以它的子类LinearLayout必须要实现。

2.3.2.2我们再来看LinearLayout中的 onLayout()方法。

2.3.2.3挑一个纵向的吧,我们再来看LinearLayout中的 layoutVertical()方法。

2.3.2.4我们再来看LinearLayout中的 setChildFrame()方法。

又一次回到了View的layout方法,接下来就看View分发的layout。

我们先来看View中的 layout()方法。

我们先来看View中的 onLayout()方法。

空空如也,其实View的布局由父容器决定,所以空实现是正常的,当然也可以在自定义View中进行更改。

Android开发之自定义控件(二)---onLayout详解

自定义View Layout过程-最易懂的自定义View原理系列(3)