项目步骤:

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. Vue组件使用基础

    这篇博文用来记录 .vue 组件的使用方法. 可以把组件代码按照 template.style.script 的拆分方式,放置到对应的 .vue 文件中. 模板(template).初始数据(data ...

  2. IDEA中编写脚本并运行shell脚本

    IDEA中编写脚本并运行shell脚本     来自 <https://blog.csdn.net/u012443641/article/details/81295999>

  3. grep的使用【转】

    grep的作用是显示匹配一个或多个模式的文本行.时常会作为管道(|)的第一步,以便对匹配的数据作进一步处理.grep常用于查找和替换文本的.在传统上,grep有3个版本:grep.egrep(扩展gr ...

  4. ListCtrl 控件数据动态改动

    參考文章:ListCtrl 控件数据动态改动 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDIzNjU1MA==/font/5a6L5L2T/f ...

  5. Android里使用正則表達式

    在Android里怎样使用正則表達式: 以验证username为例.username一般字母开头,同意字母数字下划线.5-16个字节: String regEx = "^[a-zA-Z][a ...

  6. 一起talk C栗子吧(第九十五回:C语言实例--使用共享内存进行进程间通信一)

    各位看官们,大家好,上一回中咱们说的是SystemV IPC结构概述的样例,这一回咱们说的样例是:使用共享内存进行进程间通信. 闲话休提.言归正转.让我们一起talk C栗子吧! 共享内存是Syste ...

  7. Android面试精华

    SIM卡的EF文件有什么作用? SIM卡里的全部文件按树来组织: 主文件MF(Master File)--主文件仅仅有文件头,里面存放着整个SIM卡的控制和管理信息 专用文件DF(Dedicated ...

  8. 42.angularJS自定义服务

    转自:https://www.cnblogs.com/best/tag/Angular/ 1. 你可以创建自定义服务,链接到你的模块中: <!DOCTYPE html> <html& ...

  9. Nginx-虚拟主机配置问题

    Nginx-虚拟主机配置问题 标签(空格分隔): linux,php,nginx,larave 这两天突然想配置lnmp环境,学习下Nginx配置结果就遇到了下边的问题 Nginx: server下的 ...

  10. 知方可补不足~powerDesign为模型添加注释(让生成的SQL有注释)

    事实上powerDesign本身就有这个功能,不需要我们修改它的生成器了,这种方法够简单! 一 打开表模型,选择column标签