安卓开发_浅谈DatePicker(日期选择器)

简介: DatePicker继承自FrameLayout类,日期选择控件的主要功能是向用户提供包含年、月、日的日期数据并允许用户对其修改。如果要捕获用户修改日期选择控件中的数据事件,需要为DatePicker添加OnDateChangedListener监听器。

DatePicker继承自FrameLayout类,日期选择控件的主要功能是向用户提供包含年、月、日的日期数据并允许用户对其修改。如果要捕获用户修改日期选择控件中的数据事件,需要为DatePicker添加OnDateChangedListener监听器。

 

示例:

一、全局模式

1、布局文件

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical" >
 6 
 7     <DatePicker
 8         android:id="@+id/id_datePicker1"
 9         android:layout_width="wrap_content"
10         android:layout_height="wrap_content" />
11 
12 </LinearLayout>

 

2、activity

 1 package base_ui;
 2 
 3 import java.util.Calendar;
 4 
 5 import com.example.allcode.R;
 6 
 7 import android.app.Activity;
 8 import android.app.DatePickerDialog;
 9 import android.app.DatePickerDialog.OnDateSetListener;
10 import android.os.Bundle;
11 import android.widget.DatePicker;
12 import android.widget.DatePicker.OnDateChangedListener;
13 
14 public class Ui_DatePicker extends Activity{
15     private DatePicker datapicker;
16     private Calendar cal;//显示当前日期
17     private int year;
18     private int month;
19     private int day;
20     private int hour;
21     private int minute;
22     
23     
24     
25     @Override
26     protected void onCreate(Bundle savedInstanceState) {
27         // TODO Auto-generated method stub
28         super.onCreate(savedInstanceState);
29         setContentView(R.layout.ui_datepickerdialog);
30         datapicker = (DatePicker) findViewById(R.id.id_datePicker1);
31         //获取日历的对象
32         cal=Calendar.getInstance();
33         //获取年月日时分秒信息
34         year = cal.get(Calendar.YEAR);
35         month = cal.get(Calendar.MONTH)+1;//注意点 ,要加一
36         day = cal.get(Calendar.DAY_OF_MONTH);
37         hour = cal.get(Calendar.HOUR_OF_DAY);
38         minute = cal.get(Calendar.MINUTE);
39         
40         setTitle("选择时间:"+year+"年-"+month+"月-"+day+""+hour+"时-"+minute+"");
41     
42         //datepicker
43         datapicker.init(year, cal.get(Calendar.MONTH), day, new OnDateChangedListener() {
44             
45             @Override
46             public void onDateChanged(DatePicker view, int year, int month, int day) {
47                 // TODO Auto-generated method stub
48                 month++;//注意点。要加一
49                 setTitle("当前时间:"+year+"年-"+month+"月-"+day+""+hour+"时-"+minute+"");
50             }
51         });
52     }
53 }

效果图:

二、对话框模式

对应上述示例42--51行代码

1 new DatePickerDialog(this, new OnDateSetListener() {
2             
3             @Override
4             public void onDateSet(DatePicker view, int year, int month, int day) {
5                 // TODO Auto-generated method stub
6                 setTitle("当前时间:"+year+"年-"+month+"月-"+day+""+hour+"时-"+minute+"");
7             }
8         }, year, cal.get(Calendar.MONTH), day).show(); //后三个参数相当于初始化

 效果图:

相关文章
|
存储 缓存 API
Android Kotlin之Flow数据流
`Flow`是`google`官方提供的一套基于`kotlin`协程的响应式编程模型,它与`RxJava`的使用类似,但相比之下`Flow`使用起来更简单,另外`Flow`作用在协程内,可以与协程的生命周期绑定,当协程取消时,`Flow`也会被取消,避免了内存泄漏风险。
646 1
|
Java Kotlin
Kotlin 之 匿名接口 回调
Kotlin 之 匿名接口 回调
301 0
|
9月前
|
Java
正则匹配字符串中所有a标签
简述利用正则取出一段字符串中的所有a标签
|
10月前
|
移动开发 缓存 前端开发
构建高性能 React Native 跨端应用—图片与内存
介绍 React Native 跨端应用图片和内存的优化
构建高性能 React Native 跨端应用—图片与内存
|
Java Android开发
【安卓开发】Android中日期选择器DatePicker和TimePicker的使用
【安卓开发】Android中日期选择器DatePicker和TimePicker的使用
680 0
【安卓开发】Android中日期选择器DatePicker和TimePicker的使用
|
算法 Java
Error:java: 不允许在使用 --release 时从系统模块 java.xml 导出程序包:
Error:java: 不允许在使用 --release 时从系统模块 java.xml 导出程序包:
488 0
Error:java: 不允许在使用 --release 时从系统模块 java.xml 导出程序包:
|
存储 开发工具 Android开发
Android 11 上的文件读写权限(MANAGE_EXTERNAL_STORAGE)
Android 11 上的文件读写权限(MANAGE_EXTERNAL_STORAGE)
1238 0
Android 11 上的文件读写权限(MANAGE_EXTERNAL_STORAGE)
|
XML Java API
Jetpack 系列(6)—— ViewBinding 与 Kotlin 委托双剑合璧
Jetpack 系列(6)—— ViewBinding 与 Kotlin 委托双剑合璧
186 0
Jetpack 系列(6)—— ViewBinding 与 Kotlin 委托双剑合璧
|
移动开发 Dart 前端开发
这么多移动开发的方式,传统方式写安卓、IOS 还有出路吗?
我所说的传统的方式是指,用 Java 或者 Kotlin 写安卓,用 Object-C 或者 Swift 写 IOS。
253 0
这么多移动开发的方式,传统方式写安卓、IOS 还有出路吗?