项目步骤:

1.在Main.xml布局文件中定义对应的组件,Main.xml内容如下:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

<!-- 日期控件布局 -->

<LinearLayout

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal" >

<EditText

android:id="@+id/showdate"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_weight="1" />

<Button

android:id="@+id/pickdate"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="选择日期" />

</LinearLayout>

<!-- 时间控件布局 -->

<LinearLayout

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal" >

<EditText

android:id="@+id/showtime"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_weight="1" />

<Button

android:id="@+id/picktime"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="选择时间" />

</LinearLayout>

</LinearLayout>

2.在Activity中声明日期、时间控件,完成对其操作,Activity内容如下:

public class MainActivity extends Activity {

//声明变量,获取组件

private EditText showDate = null;

private Button pickDate = null;

private EditText showTime = null;

private Button pickTime = null;

//声明变量,用于对日期、时间控件的操作

private static final int SHOW_DATAPICK = 0;

private static final int DATE_DIALOG_ID = 1;

private static final int SHOW_TIMEPICK = 2;

private static final int TIME_DIALOG_ID = 3;

private int mYear;  private int mMonth;

private int mDay;  private int mHour;

private int mMinute;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//设置布局文件

setContentView(R.layout.main);

// 初始化控件和UI视图

initializeViews();

//新建一个Calendar对象获取Calendar信息

final Calendar c = Calendar.getInstance();

//将年、月、日、时、分分别获取出来

mYear = c.get(Calendar.YEAR);

mMonth = c.get(Calendar.MONTH);

mDay = c.get(Calendar.DAY_OF_MONTH);

mHour = c.get(Calendar.HOUR_OF_DAY);

mMinute = c.get(Calendar.MINUTE);

//设置日期

setDateTime();

//设置时间

setTimeOfDay();

}

/**   * 初始化控件和UI视图   */

private void initializeViews() {

//根据id在布局文件中找到对应的组件

showDate = (EditText) findViewById(R.id.showdate);

pickDate = (Button) findViewById(R.id.pickdate);

showTime = (EditText) findViewById(R.id.showtime);

pickTime = (Button) findViewById(R.id.picktime);

//为pickDate设置监听器,点击显示日期控件

pickDate.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

//新建一个Message对象

Message msg = new Message();

if (pickDate.equals((Button) v)) {

msg.what = MainActivity.SHOW_DATAPICK;

}

//发出消息

MainActivity.this.dateandtimeHandler.sendMessage(msg);

}

});

//为pickTime设置监听器,点击显示时间控件

pickTime.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Message msg = new Message();

if (pickTime.equals((Button) v)) {

msg.what = MainActivity.SHOW_TIMEPICK;

}

//发出消息

MainActivity.this.dateandtimeHandler.sendMessage(msg);

}

});

}

/**   * 设置日期   */

private void setDateTime() {

final Calendar c = Calendar.getInstance();

mYear = c.get(Calendar.YEAR);

mMonth = c.get(Calendar.MONTH);

mDay = c.get(Calendar.DAY_OF_MONTH);

//更新日期

updateDateDisplay();

}

/**   * 更新日期显示   */

private void updateDateDisplay() {

showDate.setText(new StringBuilder().append(mYear).append("-")     .append((mMonth + 1) < 10 ? "0" + (mMonth + 1) : (mMonth + 1))     .append("-").append((mDay < 10) ? "0" + mDay : mDay));

}

/**   * 日期控件的事件   */

private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {

public void onDateSet(DatePicker view, int year, int monthOfYear,     int dayOfMonth) {

mYear = year;    mMonth = monthOfYear;    mDay = dayOfMonth;

//更新日期

updateDateDisplay();

}

};

/**   * 设置时间   */

private void setTimeOfDay() {

final Calendar c = Calendar.getInstance();

mHour = c.get(Calendar.HOUR_OF_DAY);

mMinute = c.get(Calendar.MINUTE);

//更新日期

updateTimeDisplay();

}

/**   * 更新时间显示   */

private void updateTimeDisplay() {

showTime.setText(new StringBuilder().append(mHour).append(":")     .append((mMinute < 10) ? "0" + mMinute : mMinute));

}

/**   * 时间控件事件   */

private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {

@Override

public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

mHour = hourOfDay;

mMinute = minute;

//更新时间

updateTimeDisplay();

}

};

/**   * 判断用户选择并作出响应   */

@Override

protected Dialog onCreateDialog(int id) {

switch (id) {

case DATE_DIALOG_ID:    return new DatePickerDialog(this, mDateSetListener, mYear, mMonth,      mDay);

case TIME_DIALOG_ID:    return new TimePickerDialog(this, mTimeSetListener, mHour, mMinute,      true);

}   return null;

}

@Override

protected void onPrepareDialog(int id, Dialog dialog) {

switch (id) {

case DATE_DIALOG_ID:    ((DatePickerDialog) dialog).updateDate(mYear, mMonth, mDay);    break;

case TIME_DIALOG_ID:    ((TimePickerDialog) dialog).updateTime(mHour, mMinute);    break;

}

}

/**   * 处理日期和时间控件的Handler   */

Handler dateandtimeHandler = new Handler() {

@Override

public void handleMessage(Message msg) {

switch (msg.what) {

case MainActivity.SHOW_DATAPICK:

//显示日期控件

showDialog(DATE_DIALOG_ID);     break;

case MainActivity.SHOW_TIMEPICK:

//显示时间控件

showDialog(TIME_DIALOG_ID);     break;

}

}

};

}

【基础篇】DatePickerDialog日期控件的基本使用(二) ——分别获取年、月、日、时、分的更多相关文章

  1. 【基础篇】DatePickerDialog日期控件的基本使用(一)

    项目步骤: 1.首先在Main.xml布局文件中添加一个Button标签,用来点击显示日期控件,Main.xml内容如下: <RelativeLayout xmlns:android=" ...

  2. iOS开发基础篇-手写控件

    一.手写控件的步骤 1)使用相应的控件类创建控件对象: 2)设置该控件的各种属性: 3)添加空间到视图中: 4)如果是 UIButton 等控件,还需考虑控件的单击事件等: 二.添加 UIButton ...

  3. cocos2dx基础篇(10) 按钮控件CCControlButton

    [3.x] (1)去掉 “CC” (2)对象类 CCObject 改为 Ref (3)按钮事件回调依旧为 cccontrol_selector ,没有使用 CC_CALLBACK_2 (4)按钮状态  ...

  4. cocos2dx基础篇(9) 滑块控件CCControlSlider

    [3.x] (1)去掉 “CC” (2)对象类 CCObject 改为 Ref (3)CCControlEvent 改为强枚举 Control::EventType (4)CCControlEvent ...

  5. JQuery EasyUI 日期控件 怎样做到只显示年月,而不显示日

    标题问题的答案在OSChina中 http://www.oschina.net/question/2282354_224401?fromerr=lHJTcN89 我还是把这个记录下来 ======== ...

  6. ASP.NET C# 日期 时间 年 月 日 时 分 秒 格式及转换(转自happymagic的专栏)

    在平时编码中,经常要把日期转换成各种各样的形式输出或保持,今天专门做了个测试,发现DateTime的ToString()方法居然有这么多的表现形式,和大家一起分享. DateTime time=Dat ...

  7. ASP.NET 日期 时间 年 月 日 时 分 秒 格式及转换

    在平时编码中,经常要把日期转换成各种各样的形式输出或保持,今天专门做了个测试,发现DateTime的ToString()方法居然有这么多的表现形式,和大家一起分享. DateTime time=Dat ...

  8. Js 日期字符串分别截取 年 月 日 时 分 秒

    function shijiantime(times){ var timearr = times.replace(" ", ":").replace(/\:/g ...

  9. Wdatepicker日期控件的使用指南 (转)

    Wdatepicker日期控件的使用指南 标签: inputclass语言functionstring正则表达式 2012-02-10 15:48 40826人阅读 评论(5) 收藏 举报 .embo ...

随机推荐

  1. keepalived的功能及DR模式搭建笔记

    一.HA集群中的相关术语 1.节点(node) 运行HA进程的一个独立主机,称为节点,节点是HA的核心组成部分,每个节点上运行着操作系统和高可用软件服务,在高可用集群中,节点有主次之分,分别称之为主节 ...

  2. 在Windows上面安装多个Memcached

    在Windows上面安装多个Memcached sc create "memcached Server3" start= auto binPath= "D:\memcac ...

  3. 2.跟我学solr---在solr admin中加入索引

    这一章为大家介绍怎样在solr admin中.通过浏览器向solr加入索引 一.加入xml格式的文档 进入solr admin后,点击Documents.选择Documentation Type为xm ...

  4. 小贝_php源代码安装

    PHP安装  一.本文档相关文件下载 二.php安装 一.本文档相关文件下载 1.php下载地址: http://php.net/downloads.php (备注: 本文档下载的是php版本号为ph ...

  5. Yocto tips (15): Yocto中的包管理器

    使用包管理器 在local.conf中使能就可以: 然后编译后就会有rpm包了: 配置文件server 能够使用ngix和apache.可是我们也能够仅仅用使用python: python -m Si ...

  6. 【RQNOJ】460 诺诺的队列

    [题目大意] 求全部数对(i,j)满足随意a[k]<=a[i]且a[k]<=a[j]. 形象地说,就是有一群人站成一列.每一个人有一定的身高,然后问有多少对人能够互相看得到. 把数对(i, ...

  7. SVN管理工具的使用(实习第9天)

    最后就是我进行提交代码的时候要记得写注释,自己写了那些方法要标明,或者自己修改了哪些功能也要表明.不然我会被骂的. 2>代码冲突解决的问题: 服务器上的代码跟自己代码改动的地方不同 这种情况比较 ...

  8. less09 判断语句

    less //.mixin (@a) when (lightness(@a) >= 50%) { //255/2=127.5 // background-color: black; //} // ...

  9. hdoj--2709--Sumsets(数位dp)

    Sumsets Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Su ...

  10. [NOI2002] Savage 解题报告(扩展欧几里得)

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1407 Description 克里特岛以野人群居而著称.岛上有排列成环行的M个山洞.这些 ...