在android中,DatePicker组件和TimePicker组件分别是日期选择器和时间选择器。

该实例中,当点击日期选择器按钮后,弹出日期选择框,用户选择日期后andoid会将日期显示到TextView组件中;当点击时间选择器按钮后,弹出时间选择框,选择后在相应的TextView组件显示时间。

日期选择框和时间选择框在创建实例的过程中,构造方法的参数类似,以下分别介绍:

1、日期选择框创建实例如下

DatePickerDialog datePicker=new DatePickerDialog(Context context, OnDateSetListener callBack, int year, int  monthOfYear, int dayOfMonth);

其中第二个参数是日期选择框的监听方法,通过该方法可以将选择日期的年月日返回,后三个参数是弹出日期选择框的初始日期显示。

日期选择框的监听方法如下,需要覆写onDateSet()方法。

DatePickerDialog.OnDateSetListener date_callback=new DatePickerDialog.OnDateSetListener() {

@Override

public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {//arg1~arg3分别是选择的年月日

textView_Date.setText(String.format("%s年%s月%s日",format_conver(arg1),format_conver(arg2),format_conver(arg3)));//自定义一个format_conver()方法保证格式输出

}

};

2、时间选择框创建实例和日期选择框过程类似,参数基本相同。

TimePickerDialog timePicker=new TimePickerDialog(Context context, OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView);

其中最后一个参数是时间采用12小时制还是24小时制显示。

时间选择框监听方法如下,需要重写onTimeSet()方法。

TimePickerDialog.OnTimeSetListener time_callback=new TimePickerDialog.OnTimeSetListener() {

@Override

public void onTimeSet(TimePicker arg0, int arg1, int arg2) {//arg1表示小时,arg2表示分钟

textView_Time.setText(String.format("%s:%s", format_conver(arg1),format_conver(arg2)));//格式输出

}

};

实例测试代码如下:

首先是布局文件:

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/LinearLayout1"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context="main.test_dt_picker.MainActivity">

android:id="@+id/tv1_Date"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="30sp"

android:text="@string/tv_Date"/>

android:id="@+id/btn1_Date"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/btn_Date" />

android:id="@+id/tv2_Time"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="30sp"

android:text="@string/tv_Time"/>

android:id="@+id/btn2_Time"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/btn_Time"/>

其次是strings.xml文件:

Test_DT_Picker

Settings

None

None

日期选择器

时间选择器

再次是android源码文件:

package main.test_dt_picker;

import android.app.DatePickerDialog;

import android.app.TimePickerDialog;

import android.os.Bundle;

import android.support.v7.app.ActionBarActivity;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.DatePicker;

import android.widget.TextView;

import android.widget.TimePicker;

public class MainActivity extends ActionBarActivity implements OnClickListener{

private Button button_Date=null,button_Time=null;

private TextView textView_Date=null,textView_Time=null;

private DatePickerDialog datePicker=null;

private TimePickerDialog timePicker=null;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

button_Date=(Button)findViewById(R.id.btn1_Date);

button_Time=(Button)findViewById(R.id.btn2_Time);

textView_Date=(TextView)findViewById(R.id.tv1_Date);

textView_Time=(TextView)findViewById(R.id.tv2_Time);

button_Date.setOnClickListener(MainActivity.this);

button_Time.setOnClickListener(MainActivity.this);

datePicker=new DatePickerDialog(MainActivity.this, date_callback, 2012, 6, 18);

timePicker=new TimePickerDialog(MainActivity.this, time_callback, 10, 5, true);

}

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

int btn_id=arg0.getId();

switch (btn_id) {

case R.id.btn1_Date: datePicker.show();break;

case R.id.btn2_Time: timePicker.show();break;

default: break;

}

}

DatePickerDialog.OnDateSetListener date_callback=new DatePickerDialog.OnDateSetListener() {

@Override

public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {

textView_Date.setText(String.format("%s年%s月%s日",format_conver(arg1),format_conver(arg2),format_conver(arg3)));

}

};

TimePickerDialog.OnTimeSetListener time_callback=new TimePickerDialog.OnTimeSetListener() {

@Override

public void onTimeSet(TimePicker arg0, int arg1, int arg2) {

textView_Time.setText(String.format("%s:%s", format_conver(arg1),format_conver(arg2)));

}

};

public String format_conver(int s){//该方法为了输出一位数时保证前面加一个0,使之与实现十位数对齐,比如时间是12:5,使用该方法后输出为12:05

return s>=10?""+s:"0"+s;

}

}

最后是三张测试图片:

第一张启动后原图:

点击日期选择框按钮后弹出的日期选择框:

最后测试图片:

android datepicker 参数,android常用组件之DatePicker和TimePicker相关推荐

  1. android onpagescrolled 参数,Android

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 背景 ViewPager 在应用中使用较为广泛,诸如页面轮播图,App引导页,大图预览等.其中指示器页比较重要 它用于提 ...

  2. android 多类型参数,Android的数据绑定-类型参数T具有不兼容的上限:ViewDataBinding和MainActivity...

    我正在使用Android Studio 2.0 Preview 4.我正在使用Android SDK工具25 rc1. 无论我清理/重建项目多少次,此错误仍然存在. File-> Invalid ...

  3. android的33种常用组件1

    view:view是android中所有ui组件的父类,他其实就是一个空白区域,然后所有的组件在继承这个view的基础上对他进行改造,将其捏成相应的形状,比如textview,button等等,所以说 ...

  4. android getevent参数,android getevent、sendevent、input keyevent 使用说明

    设备节点: dev 字符设备节点: shell@android:/dev/input $ ll crw-rw---- root input 13, 64 2013-11-28 17:23 event0 ...

  5. android super参数,Android Superuser 提权漏洞分析

    近日,国外安全研究人员揭露多款Android平台下的授权应用管理软件存在3个安全漏洞,利用漏洞可进行root. TSRC也对这3个Android Superuser 提权漏洞进行了分析,具体分析情况请 ...

  6. android asynctask 参数,Android中AsyncTask详解

    定义 AsyncTask是一个抽象类,在使用时需要继承该类,实现其抽象方法protected abstract Result doInBackground(Params... params).其主要作 ...

  7. android onclicklistener 参数,Android 的 setOnClickListener(参数)求大哥指导

    本人想知道 1. setOnClickListener()方法   的意思是  设置监听器的意思吗? 2.假如是的  传入的参数是指 要被监控的对象吗? 3. 上面的代码是给 butTOW的监控事件, ...

  8. android sqlite 参数,Android SQLite3命令详解教程

    SQLite3可以让我们手动的对SQLite数据库进行管理.一共有2个sqlite3,一个在电脑上,它位于 android-sdk-windows\tools\sqlite3.exe,用于电脑上SQL ...

  9. android settext 参数,Android TextView.setTextColor()的参数设置方式

    摘要:Android TextView.setTextColor()的参数设置方式 查了下资料发现setTextColor()的参数应该写成以下的这种形式: setTextColor(0xFF0000 ...

最新文章

  1. Python系列教程之学生信息管理系统
  2. 判断两棵树是否相等与使用二叉链表法建立二叉搜索树
  3. C++编程优化——让你的代码飞起来
  4. FCOS 基于FPN之上的完全Anchor Free检测框架
  5. C++算法八:快速排序
  6. 服务器的数据库 mysql 开放远程连接
  7. catia文本时怎么换行_【二次开发】CATIA二维图 环形文字工具
  8. Determining IP information for eth0...failed
  9. Impala SQL 语言参考
  10. 微商引流:微商创业者如何通过4大微博引流渠道获取精准流量?
  11. irving - 初学python
  12. 伦巴时间步的动作要领_伦巴前进步动作的基本要领
  13. java8 Predicate
  14. 笔记|数据分析:指标体系中的标准化方法
  15. 代码随想录01 | 704二分查找和27移除元素
  16. 原有人陪你颠沛流离 昨日书
  17. 机器学习基础(一)混淆矩阵,真阳性(TP),真阴性(TN),假阳性(FP),假阴性(FN)以及敏感性(Sensitivity)和特异性(Specificity)
  18. 创客学院9天C语言三
  19. python交易策略源码_经典的股票量化交易策略(含源码)
  20. 艾美捷细胞糖酵解分析试剂盒,基于比色法来检测

热门文章

  1. 追梦App系列博客——理念篇
  2. 牛逼!PC内测版微信,含重大更新!
  3. 阿里云emas远程真机使用指南
  4. 基于深度学习表格票据OCR识别
  5. Siebel 基础入门--权限控制
  6. vm15我的计算机大型延迟太高,VMware虚拟机cpu使用率高怎么解决
  7. 用MPLAB X IDE v5.00给PIC单片机新建工程
  8. 李开复给中国大学生的第七封信——21世纪最需要的七种人才
  9. 自制机器人15分钟破解保险箱密码
  10. cmsplus实战之仿[我扫网]之十二:打包网站及数据库并上传到服务器调试