项目步骤:

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. 紫书 习题 11-10 UVa 12264 (二分答案+最大流)

    书上写的是UVa 12011, 实际上是 12264 参考了https://blog.csdn.net/xl2015190026/article/details/51902823 这道题就是求出一种最 ...

  2. 【BZOJ 1293】[SCOI2009]生日礼物

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 显然的滑动窗口题. (尺取法 如果l..i这一段已经有k种珍珠了. 那么就尝试把l++; (即把l这个影响尝试去掉一下 如果不足k种 ...

  3. 关于bom ef+bb+bf的问题

    今天在商品详细页头部出现了一行空白,各种尝试无果,最后怀疑是不是bom头的问题,经过断点跟踪调试逐步缩小范围,果然最后发现是一个语言包文件的开头有 ef bb bf样式的字节,用ultraedit另存 ...

  4. Win7+VS2010:mysql 源代码编译与调试

    win7+vs2010源代码编译mysql 近期因为在实习,工作重点在于一些数据库的开发,为了更好的理解数据库的实现机制.眼下萌生了要研究一下mysql数据库源代码的想法.那么好吧,说干就干.首先我们 ...

  5. MongoDB count distinct group by JavaAPI查询

    import java.net.UnknownHostException; import com.mongodb.BasicDBList; import com.mongodb.BasicDBObje ...

  6. LBP(Local Binary Patterns)局部二进制模式

    1. LBP 用于人脸识别 为了预测每个像素属于哪个脸部器官(眼睛.鼻子.嘴.头发),通常的作法是在该像素周围取一个小的区域,提取纹理特征(例如局部二值模式),再基于该特征利用支持向量机等浅层模型分类 ...

  7. Linux中的find命令

    .递归查找(find 命令 是递归遍历文件夹的) 命令:find . -name “*.txt” //当前路径下递归查找以.txt结尾的文件夹 .不递归查找 find . -name “*.txt” ...

  8. 数位$dp$

    数位\(dp\)搞了一上午才搞懂.靠这种傻\(X\)的东西竟然花了我一上午的时间. 数位\(dp\) 概念 数位\(dp\)就是强制你分类一些数,例如给你一段区间,然后让你求出不包含\(2\)的数的个 ...

  9. 1355: [Baltic2009]Radio Transmission

    Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 958  Solved: 659[Submit][Status][Discuss] Description ...

  10. 使用Java操作Redis(一)

    Redis是一款基于key-value的数据库服务器,安装完成后我们可以通过redis-cli使用Redis提供的命令完成各种操作.redis-cli实际上就是一款客户端,和redis-server建 ...